А я тоже не очень понимаю
Видимо, у меня в голове произошло неправильное смешение понятий GC, и reference counting

Как мне казалось до сих пор:
1) уже при значенииi=2, при выполненииA:=A^.next;первый (полученный поNEW (A);) алоцированный объект получает нулевой счетчик ссылок, и кэшируется как-то куда-то в некую "свободную область". И вроде бы - сразу же, не отходя от кассы...
2) при значенииi=3, при выполненииNEW(A^.next);этот же, уже "освобожденный", кусочек памяти может совершенно спокойно попасть уже в эту алокацию. И это даже было бы самым логичным: в "свободной области" точно есть кусочек именно нужного размера, может и не один такой, а только помещать новый в самое начало списка "свободных", обычно удобнее.
3) из всего, этого мне совершенно непонятно, что означает фраза:
> -- Сергей Губанов писал(а):
> ... сборщик мусора обычно так быстро не работает, какое-то неопределённое время после завершения этого цикла какое-то количество объектов память всё ещё будут занимать.

Направьте на путь истинный, пожалуйста.