Если, допустим, под DOM XML память выделять одним большим блоком, а уже внутри этого блока адресовать память отдельно, то получается как бы двухуровневый менеджер памяти, где один уровень - это сборщик мусора и его менеджер памяти, а второй уровень - это менеджер памяти внутри выделенного блока памяти. Получается, что сложность менеджера памяти выходит на прикладной уровень и усложняет программирование.
По хорошему менеджер памяти должен быть только 1, но универсальный, который бы хорошо справлялся и с ситуациями, когда есть много мелких объектов, связанных между собой и нужно их обходить.