Предлагаю уважаемым коллегам покрутить идею о том, чтобы разрешить объявлять ABSTRACT, EMPTY и предобъявления ^ в секции деклараций, до секции процедур. Это вообще не должно оказать никакого влияния на процесс компиляции (вроде бы).

Но даст возможность ликвидировать текущее формалистическое насилие над смысловой группировкой.
Когда декларация даже абстрактного интерфейса разорвана на два места (сам тип и его набор методов).

А дать возможность определять и ^-предобъявления позволит в крупных модулях выполнить сначала предобъявление групп процедур, например - аналог interface-секции в других Pascal-языках. Но не обязательной.