Я думаю, что путаница здесь возникает из-за того, что вы можете распоряжаться объектами как детерминистически, так и недетерминированно (т.е. когда GC приступает к этому).
Чтобы ответить на ваши вопросы о том, зачем нам вообще нужен GC, я бы сказал, даже не говоря о утечках памяти, что GC довольно производительны, а требование немедленного восстановления памяти может фактически снизить общую производительность системы. , Это аргумент, аналогичный многопоточным дебатам.