Wenn es keine
*.dcu Dateien zu den einzelnen Units gibt (noch nicht kompiliert), dann kommt es zu solchen Erscheinungen.
Richtig doof wird es dann, wenn man für unterschiedliche Ziele (x32/x64/OSX) und auch Debug/Release alles in einen Ausgabepfad schmeißt.
Wird jetzt umgestellt, dann liegen dort ja noch die "alten" complilierten Units rum.
Richtig ekelig wird es, wenn man gar keinen Ausgabepfad angibt, dann werden alle compilierten Units dort abgelegt, wo die selbigen Units im Quelltext liegen - vor allem wenn man mehr als eine Delphi-Umgebung auf dem System hat.
In den Projekt-Optionen kann man diese Ausgabepfade dynamisch einstellen
um genau diese Überschneidungen zu vermeiden.