Есть гипотеза, что для автоматического управления памятью можно обойтись без сборщика мусора -- подсчетом ссылок, если в системе наряду с объектами существуют обычные переменные с тремя видами доступа -- in, out и var.
Мысль заключается в том, что в системе со сборщиком мусора именно он выступает фактическим владельцем всех объектов, являясь чем-то вроде бога для ходящих под себя грешных программ (процедур). А в системе с тремя типами доступа -- своего рода "вольтеровская демократия" -- "свобода вашего кулака кончается у моего носа", -- не требующая вмешательства бога.
Разграничение out и var дает возможность передавать владение, и все ссылки в конце концов упираются в переменные, -- локальные либо глобальные. Циклических ссылок при этом не возникает, поскольку эпилог процедуры отличает владеющие ссылки от невладеющих и финализирует только владеющие, -- в рамках своей ответственности.
Покритикуйте, пожалуйста.