Подсчет ссылок подвержен утечкам памяти из-за циклических ссылок. Представьте, что у вас есть простой объект "узел", который имеет ссылку на другой узел, и предположим, что вы устанавливаете его ссылку на себя. Счетчик ссылок для этого объекта всегда будет равен 1, даже если для него нет дескриптора из глобальной переменной или переменной стека, поэтому он никогда не будет собирать мусор и будет пропускать память. Это тривиальный пример, но любая циклическая ссылка будет иметь ту же проблему.
Конечно, циклические ссылки могут быть обнаружены, но, по-видимому, это приводит к дополнительным сложностям, что делает другие методы GC более привлекательными.