Упомянутая книга:

Дж. Рихтер Программирование на платформе Microsoft .NET Framework. "Русская редакция" - 2003.

Вспомнил, есть ещё одна:

Richard Jones, Rafael Lins. Garbage Collection. Algorithms for Authomatic Memory Management. "John Willey & Sons" - 1996.

Можно обращаться в личку.

По поводу недетерминированности и зависимости времени сборки от количества объектов - да, всё верно. С этим борются введением поколений (получая другие проблемы), но лучше просто не разводить свинарник из мелких объектовЭто возможно (не разводить) только в Обероне, т.к. в Java - .NET на любой чих идёт выделение через new - ООП, массивы, строки...