I have somehow managed to brick (for lack of a better term) two Arduino R3s in the exact same manner. Prior to the bricking, I uploaded programs to each of them at least fifty times, on both Linux (via a laptop) and Windows (via a desktop). Each time the bricking occurred while uploading from the Linux laptop, so maybe something to do with not enough USB power? The last one I bricked had DC in connected as well (to power an RGB LED strip via VIN).
After bricking, the Arduinos were no longer recognized by either operation system, and the bootloader LED (13) does not light up at all. (The power LEDs do indicate they have power.)
Suspecting their bootloader, I was successfully able to flash the bootloader using another Uno R3 (following the "Arduino as ISP" procedure). However, they still didn't boot.
My next idea was that I had somehow damaged the Atmega328P chips. So, I took a good Atmega328P from a working Uno R3, installed it in the bad ones - and they didn't boot! Then I took the 328Ps from the bricked Arduinos and tried them in the working Uno R3 - and they booted fine.
So, it appears something other than the 328P chip is broken. Do I have any options at this point?