Wir Menschen neigen dazu, die Welt zu vereinfachen, um sie verstehen zu können.
Dazu gehört auch die automatische Annahme, dass ein undefiniertes Verhalten, auf einen lokalen Umstand begrenzt ist.
Ist es aber nicht, denn dann wäre es ja definierbar, zumindest definierbar auf einen Ort.
Mein Rat:
Wenn der Standard zu irgendwas sagt: Das ist ein UB!
Dann ist das so.
Danach irgendwelche Annahmen über irgendwas zu treffen, egal was, ist ein fataler Irrtum.
Oder anders:
Ein einzelner kleiner UB Vorfall, ist das Todesurteil für das Gesamtprogramm!
Zwangsläufig, vollständig, immer und unausweichlich.
Denn das ist was der Begriff "Undefined Behavior" aussagt, im wörtlichen Sinne.
Natürlich kann es auch zufälligerweise, genau das tun, was du erwartest.
Aber das ist sicher kein Verdienst deiner Arbeit, des µC oder der Sprache an sich.
Sondern etwas undefiniertes.
Auch hier ein bemerkenswertes Beispiel dafür:
(In dem Thread hat ein anderer eine falsche Annahme über die Tragweite eines UB)