Code:
    WDTCR  |=   (1<<WDE) | (1<<WDCE) | (1<<WDP3);
Diese Zeile hatte ich eben auch übersehen. WDE setzt den Watchdog RESET. Du möchtest aber den Watchdog Interrupt. Muß also auch weg zusammen mit WDCE.
MIT WDP3 wird der Timer auf 4 Sekunden eingestellt. OK.
Bleibt nur WDTCR |= (1<<WDP3); von der Zeile übrig.