Genau genommen ist der Watchdog-Reset sogar ein Hard-Reset, denn es wird ein Reset von der Hardware durchgeführt, wobei allerdings der Bootloader mitbekommt, ob der Reset über die entsprechende Steuerleitung oder vom Watchdog kam.
Ein reiner Soft-Reset sieht in Arduino in etwa so aus:
void(* softReset) (void) = 0;//declare reset function at address 0
...
softReset(); //call reset
Was natürlich stimmt, ist die Aussage, dass die Standard-Bibliotheken des Arduino-Projekts keine Unterstützung dafür bieten.