> -- Цитата:
> Получается, нам нужна отдельная структура, которая бы содержала информацию о новой организации модулей (системе).

По сути на данный момент она есть - файловая система. У этого есть два минуса - во-первых, для ББ она внешняя, что вредит идеологии, во-вторых, то, с чего все началось - отсутствует гибкость.
Теперь что касается вашего предложения сама идея этого заголовочного файла попахивает Сей с плюсами. Но если все-таки развить идею, то все довольно просто.
Во-первых, "проектный модуль" должен надеваться на систему сверху, потому что как уже было сказано, модули должны работать и сами по себе без всякого проекта, и кроме того один модуль может входить в несколько проектов одновременно(в данный момент это невозможно и это крайне противно). Правда зачем мутить воду с перекрытием интерфейсов я не понимаю. Мы и так обычно делаем интерфейсный модуль в проекте. От "проектного модуля" требуется только чтобы он мог по внутреннему названию модуля выдавать его физическое название и обратно(сейчас внутреннее и физические названия просто совпадают). Таким образом в нем должен быть просто набор пар строковых констант, одна из которых указывает внутреннее имя(например формата [projectname][modulename], сейчас вместо имени проекта стоит имя подсистемы, или если быть точнее папки в файловой системе), другая физический адрес файла с модулем. Сюда же для удобства можно запихать информацию о состоянии рабочего стола для данного проета(да и кучи всего другого вплоть до комплектации меню).Таким образом мы отрываемся от файловой системы, правда взамен приобритаем лишний файл в проекте.
Да, только что вспомнил, почти тоже самое сделано а Delphi, там есть файле .dpr, который фактически хранит информацию о проекте.