Grundsätzlich würde ich eh immer empfehlen möglichst alle Uses ausschließlich im Interface zu deklarieren.
Da kommt es dann auch nur noch auf die Reihenfolge drauf an, was letzendlich verwendet wird.
Und vorallem ist ausschließlich dort die Initialisierungsreihenfolge der Units richtig gegeben.
In die Implementation kommen bei mir ausschließlich Units, welche aufgrund von Kreuzreferenzen dort hin müsssen.
Außerdem halte ich es immernoch für einen grauenhaften Bug, daß Helper-Klassen nicht überladen werden, also daß immer nur ein Helper gleichzeitig pro Klasse/Typ aktiv ist.
Und ja, es wäre toll, wenn Compiler, Code-Insight und Error-Insight gleich arbeiten würden.