VT
Имплементация несмертельно сложная исключительно потому что мутабельные объекты нельзя шарить между потоками, а в случае атомиков циклы запрещены (не собираются и текут). Оригинальная задумка refcount -- бесшовный интероп с ObjC/Swift.
Но сейчас всё активно переписывается, потому что пришло понимание, что "нельзя шарить мутабельные объекты" -- очень неудобная модель памяти для промышленного программирования :)

