Да нет там ничего сложного, более того, оказалось(внезапно), что ручное отслеживание выделения/освобождения памяти расходует больше ресурсов, чем периодический вызов сборщика мусора, который работает весьма шустро. Поэтому даже в С++ пытались GC прикрутить, но "нешмогла".
Это моё личное предвзятое мнение. Любое совпадение с реальностью является случайным и непреднамеренным.