At first program clears Watchdog in loop with increasing delays. When delays became longer then wachdog period (about 1ms) Watchdog resets program. Try to set maximum i variable in first loop to show watchdog reset. (for example: i<10000 watchdog didn't launch before neverendig loop (for (;;); ) but for "i < 100 0000" program didn't reach neverending loop.