Из-за рекурсивной природы алгоритма обхода реляционных ссылок, в первой версии сохранения в поток данные о структуре дублировались многократно. В худшем случае -- по одному разу на каждую сохраненную запись. Во второй и третьей (сохранение в XML) версии сохранения в поток, данные о структуре записываются только один раз, но за-то теряется натуральный порядок следования объектов, который теперь сохраняется в отдельном списке.
Вместо прямого включения, модуль, записанный в новом формате, должен содержать только объекты, непосредственно помещенные в него разработчиком и ссылки на другие модули, где описываются структуры классов и содержатся зависимые данные. Ссылки могут проставляться вручную или предлагаться автоматическим анализатором.
Кроме ссылок, модуль должен содержать минимальный номер структуры базы данных.
Порядок загрузки должен рассчитываться на основе анализа содержимого файлов. В будущем, когда в Firebird реализуют deferred foreign keys, порядок загрузки можно будет вообще не соблюдать.