Добавлю.

Конечно, сборка мусора упрощает проектирования.
Но, она же, вносит и огромный пласт безответственности и невнимательности при проектировании.
В частности, люди совершенно упускают из виду:
- различия между местами хранения сущностей (статика/куча)
- роль конкретного списка (владелец элементов или "обозначатель" принадлежности сущности ко множеству/объединение сущностей с имеющимся признаком)
- необходимость уделять внимание дополнительным операциям при удалении элемента из данного списка

Методологически полезней изначально проектировать системы так, как будто сборки мусора нет. То есть, решать более общую задачу. Потом, части системы, отвечающие за очистку и удаление элементов - просто комментируются или удаляются из исходников.