Им тут не пахнет даже близко (деструктором), т.к. в момент обработки очереди фантомных ссылок, обьект уже может быть уничтожен, либо не уничтожен, как повезет (если мне память не изменяет).
Обычная фантомная ссылка с очередью и уже реализованный поток для событий этой очереди. Только вот поток интернальный (точнее АПИ, соотв. его использует внутр. часть JVM), из-за чего могут возникнуть различные интересные вещи, если повесить тяжелое событие (например: замедление очистки нативных буферов а-ля general buffer).
Намного ближе к деструктору обычная финализация, однако, через нее можно оживить обьект (в зависимости кривизны рук и задачи), ну и плюс, оно повесится на нативный поток финализации, который работает совместно с GC, из-за чего можно серьезно замедлить работу всей JVM. Из еще одного очевидного минуса - обьект не сразу уничтожается после финализации.
Если уж так нужны фантомные ссылки в своем приложении, то почему бы не использовать их напрямую? В чем, собственно, проблема?
P.S: в internal API есть еще очень много интересных штук, например, получение а-ля стека - каллеров метода через рефлекшен и закрытие от таких вещей через сенсетив, это как пример