Не, обьектов на куче-то Вы не создаёте, а принцип действия выгрузки единый всё равно: оставить секцию с дескрипторами типов в памяти.

Так что, если идёт интенсивная перезагрузка (не просто hot-update, а именно генерационное программирование в рантайме, неограниченнократное), то нужно переделывать эту логику.

В принципиальном плане... Разрешить полную выгрузку модуля, где нет POINTER TO-типов - безболезненная вещь.
Самое общее решение, видимо, - запуск GC перед выгрузкой (а так и происходит, кажется) - и GC должен подтвердить факт отсутствия объектов типов модуля. Или принудительно обнулить POINTER-ы на такие типы.