Никак не пойму, а зачем в стандартном компиляторе КП объявления\описания символов вынесли в отдельный файл (.osf)?
Может так организовано кеширование (дабы заново не парсить каждый импортируемый модуль)?
Хорошо, пусть так. Но могли бы сохранить в одном файле и объявления и код. Почему не сделали?