Letzten Endes müssen Funktionsaufrufe innerhalb kernel32.dll exakt den gleichen Weg nehmen.
Ich hab verpasst, dass die Adressen anscheinend relativ sind. Von Detailfragen unter Windows habe ich keine Ahnung und per-Prozess Import-Tabellen wären ja durchaus geeignet, um positionsunabhängigen Code zu implementieren.
Einfach überprüfbare Ursachen zuerst ausschließen, also nichts für ungut