В случае, когда один тип записи определен в одном модуле, а расширяется в другом модуле, тоже можно запретить расширение - просто не эксортировать этот тип и всё. А если экспортируется обычный тип запись, то и расширить можно. А если хочется экспортировать, но запретить расширять, то экспортировать как указатель на запись.
Как мне кажется, расширение записей идет в ногу с динамическими структурами данных. Пока не могу представить себе пример, когда используются расширенные записи без указателей на них.
Если кто-нибудь может привести такой пример, то был бы рад узнать о нем.