Leider kenne ich mich auf dem Gebiet nicht so gut wie mein Vorredner (Vorschreiber) aus.
Aber: solange ein Mensch im Spiel ist können immer Fehler passieren - spätestens durch die Komplexität des Programms und der fehlenden Übersicht/Verständnis!
Ein Fehler, der mir nicht nur einmal unter gekommen ist:

Ein Buffer (Array) wird permanent mit Werten gefüllt. Durch falsche Berechnungen, Abweichungen etc. wird dieser über den reservierten Bereich beschrieben.
Wenn nach dem reservierten Bereich wichtige Variablen stehen die dann einfach überschrieben/gelöscht werden, kann es unter Umständen zu den kuriosesten Fehler kommen die man sich vorstellen kann...
Ein Watchdog wird in dieser Hinsicht seine Grenzen haben - vielleicht ist es in diesem Fall sogar notwendig nicht mehrere Systeme parallel zu fahren, sondern abweichende, oder kontrollierende Systeme aufzusetzen.
Wenn 3 identische Systeme parallel laufen ist immernoch nicht garantiert, dass sie nicht alle drei den gleichen Fehler verursachen können... (der damit nicht erkannt wird)

Apropos: ein schönes Beispiel für Menschliches Versagen - In den USA gab es mal ein Gerät names Therac 25 welches die Strahlendosis für die Bestrahlung von Menschen berechnen sollte - mindestens 3 Patienten starben durch einen Fehler im Programm (vom Mensch verursacht)...


Jetzt fällt mir doch noch so ein Unwort dazu ein: FMEA - Fehler Möglichkeiten Einfluss Analyse. Ein "Brainstorming" zur Betrachtung möglicher eintretender Fehler und dem Vorbeugen dieser.