Wir benutzen für jedes Interface eine eigene
Unit. Dann hast du das Problem nur bei echten Kreuzreferenzen.
Unsere Units heißen genauso wie das Interface. Zum Beispiel könnte es ein Interface ICustomPrinter in Common.Interfaces.Hardware.CustomPrinter.pas geben. Analog landet TCustomPrinter in Common.Hardware.CustomPrinter.pas. Auf die Weise findet man auch sehr schnell die Units für die Einbindung eines Typs.
Ich würde hier unabhängig davon ebenfalls ein Interface zurückgeben. Interfacereferenzen in Records finde ich nicht schön.