В одном модуле экспортированы процедурные переменные, но их (общий, объявленный отдельно) тип -- скрыт.

Тем не менее при компиляции внешнего модуля, который что-то присваивает этим переменным, проверка выполняется.

То есть я бы ожидал, что любое присваивание будет компилятором обламываться, -- ан нет:
если сигнатура присваиваемой процедуры соответствует невидимому типу, то компилятор присваивание пропускает.

Не могу придумать ситуацию, где такое поведение приводило бы к ошибке.

Но чисто эстетически -- как-то неэстетично.

Или чего-то не понимаю?