Зачем сборщик мусора разделяет память на поколения? Для чего это может пригодиться, в чем логика? Просто прошёлся по всем ссылкам, начиная с глобального объекта и помечая всё, до чего может добраться, включая вложенные объекты. А до чего не добрался, удалил и освободил память обратно в кучу. Память либо нужна, либо не нужна, всё. Зачем там разделение на поколения памяти «старую», «промежуточную» и «новую»?