А не придётся язык модифицировать для соответствующих объявлений видимости?, Типа "**" и "--" ? :о)
Или можно следовать правилу Кернигана "Проблемы с изъяснением? - вводите ещё один уровень косвенности!" :о) В смысле, кроме договорённости про первое слово в объявлении модуля, как имени подсистемы, нужно ещё будет вводить и "модуль доступных объявлений подсистемы" и договрариваться, что его имя будет таким же, как имя подсистемы (например!), типа:

MODULE SubsystemSubsystem;
...
А тут (пере)объявляем чего "за пределами" подсистемы "видно".
...
END SubsystemSubsystem.

Вопщем - тема шаткая. С одной стороны не хочется всё лепить в один модуль, с другой - расширять язык понятиями, аналогичными пространствам имён...