Das ist auch kein Wunder, wenn man den Maschinencode vergleicht..
Delphi-Quellcode:
// EAX: i, EDX: x
// mit Prüfung
cmp eax, edx
je @@done
mov eax, edx
@@done:
// ohne Prüfung
mov eax, edx
Da die Sprungvorhersage bei modernen Prozessoren schon so sehr ausgereift ist, dass die Fehlerwahrscheinlichkeit bei statischen Daten gegen 0 geht, wirkt sich der Sprung kaum aus, so bleibt es bei CMP/MOV mit Prüfung und bei MOV ohne Prüfung. Wenn es später an fetter Brocken geht, sagen wir, Dateisystemobjekte, macht eine Prüfung aber durchaus Sinn: beschreiben beide Werte das selbe Objekt, tut man einfach nichts, tun sie nicht, räumt man das Objekt (möglicherweise kostspielig) auf, bevor man sich auf das neue festlegt.