Leonardo (32u4): ways to brick it programmatically
If you upload a program that changes the speed of the USB core it would be almost bricked. What would happen is this:


Power on, boot loader starts, USB device enumerated on PC.
A few second later program start, USB core speed changed, USB device disappears from PC


The issue here is that not only do you have to hit reset to program, after the reset you have to quickly select the right com port and then upload before the program starts. 

The Redbearlab Blend Micro requires a USB core speed to be set in the user program. In their setup instructions there is a step to edit the Arduino main.cpp and add a section to do so. If this step is missed, the above problem happens.