Дело в том что у конструктора есть статический инициализатор, он называется cinit в документации avm2 overview. Это обычная функция куда засунута инициализация статических констант в случае если они определены как результат вызова статической функции и ещё некоторые вещи. В принципе пока мы не используем этот класс он может быть не инициализирован. Возможно что разбор класса производится при инициализации класса. В обычной ситуации если не использовать класс то он и не вкомпилится. Я сделал флешку с принудительно вкомпиленными классами которые нигде не используются, и сделал

Код AS3:
trace(describeType(getDefinitionByName("TestClass")));
однако всё было описано корректно. Более извращённых ситуаций я не могу предположить. Сие тестировалось под дебаговым плеером версии 10.2. Статик инициализатор был вызван прямо после getDefinitionByName в полном соответствии с ожиданиями.
возможно этот баг относится к ранним версиям девятого плеера.