(nb: I've been a bit snowed under with a new job, etc. I actually wrote this at least a week ago, so don't take relative date references too seriously :)
A couple weeks ago, I built up the first of a new rev of stackduinos that use SMD components for some bits. It was a minor change to the circuit, so I got cocky and soldered in the first Atmega328 chip instead of using a socket. I then spent several hours trying to figure out why I couldn't program the chip via the ISP. I'd programmed it successfully when the board was minimally populated, but then it wouldn't program again after I added all the filter caps, pullup resistors and such. I was sure I'd borked something with the filter caps or the regulator, and I meticulously desoldered and replaced all of them. It never occurred to me that the LED on pin 13 might draw too much current... the chip flashes the LED while it's being programmed and apparently the 15 or 20 mA it was drawing was too much for the USB Tiny ISP I was using to handle.
Yesterday, I made a little robot. I put an IR distance sensor on it and wanted it to stop before it slammed into walls. Unfortunately, it would stutter and not run smoothly. It would start to go, then the program would loop around and it would stop, only to start the motor again on the next iteration. I thought that when the motor switched on it drew too much juice and power to the sensor dipped, causing bad readings. Eventually, I hooked a serial port up and discovered that the sensor gave very different output when the arduino ran off battery instead of USB power.
I could go on like this forever. The details are always different, but the problem is always the same. The hardest bugs to find are the ones that aren't even close to where you're looking. Face it. If you've been looking for several minutes, chances are you'd have spotted the bug if it's there. The fact that you haven't implies that it's really not there.
So the next time you're banging your head against the wall with a really stubborn problem, trying backing up and re-examining your assumptions. You're good at finding bugs. The fact that you just can't find one THERE probably means you're looking in the wrong place entirely.