Я рад, что вы нашли свою проблему, не связанную с первоначальным вопросом. Тем не менее, у меня есть другой взгляд на ответ для потомков, на случай, если у других возникнут проблемы.
Разрешено, чтобы объект не имел ссылок, но не собирал мусор.
Из руководства по Python 2.7: «Реализация может отложить сборку мусора или вообще отказаться от нее - вопрос качества реализации заключается в том, как реализована сборка мусора, если не собраны объекты, которые еще доступны». 1005 *
Сборщик мусора NO-OP является законным.
Дискуссии о сборщиках мусора по поколениям и подсчету ссылок относятся к конкретной реализации CPython (как отмечено в вопросе)