Es gibt einen Unterschied zwischen Software-Reset und Hardware-Reset, genau wie uwe schon sagte, sind einige Initialisierungen dann hinfällig. Es gibt andere, bessere Methoden. Die geeignetste ist wohl die Watchdog-Methode, genau wie Uwe sagte.
Mehrere Threads dazu gibt es hier im Forum, auch aus philosophischer Sicht.

Wer aus dem Assembler-Bereich kommt, für den stellt ein Software-Reset nicht wirklich einen Reset dar. (Allein aus dem Grunde, dass lediglich Sachen ausgeführt werden, die man auch selber machen könnte.)