While working with AVRs, a few chips have been the unlucky ones who have died at my hands. I have damaged and completely killed(made dead) chips by giving over-volatge, sourcing too much current or simply by breaking away a few legs (including the VCC and GND legs).
One-time, the damage was only done to one port of the AVR, I have one AVR which works fine but HEATS up too much and one which works but resets randomly.. :)
Software made glitches may be fixed, glitches like disabling the RESET pin or disabling the SPI Programming by use of AVR FUSE Resetter/Fixer circuit (see here the Fuse Fixer I made) actually the method is known as HVSP/HVPP (High Voltage Serial/Parallel Programmer) – Google it for more info..
BUT, obviously Killing an AVR is never the GOAL of any project, so I have always been on the look-out of protective measures as protection is always better… My list is still sort of in-complete and noobish but here is a good collection of protective measures for AVR, actually they have mentioned 10 ways how an arduino can be killed plus how it can be saved in such situations which are used in the making of their product RUGGEDUINO – a very Rugged Arduino.