Wenn nicht zufällig der erste Node auf die if-Bedingung passt, ist node nicht definiert. Was auch immer da drin steht kann mit und ohne Optimierung anders sein.
Stimmt, sollte das nicht auch in D5 schon vom Compiler mit einem "W1036 Variable 'node' might not have been initialized" quittiert werden?