Die Antwort ist einfach:
Die Uses-Klausel im Abschnitt Interface sorgt dafür, dass in jeder anderen
Unit überall alle Deklarationen der betreffenden
Unit gültig sind. Erfolgt hier eine Überkreuzung, würde dies zu einer Endlosschleife führen.
Im Abschnitt Implemenatation gilt dies nur für den darin liegenden Code - und die Funktionen darin haben keine Typdeklaration von außen...