atmega32u4 reset, bootloader and fuses
After some testings, this is what happend. The startup code is:

*. At startup, check MCUSR. If reset was due to watchdog, clear corresponding flag.

*. Turn off wdt.

*. Configure wdt with desired timeout.

*. Feed the wdt when needed.

Two options are possible to start application with dfu-programmer:


Start application with an internal hardware reset using watchdog.
A jump at address 0x0000 without reset.


Hanging mcu later, if app was launched with option one, the applications boots.

Using option two, by some reason, the bootloader runs this time.