По поводу второго.
Вы делаете оценки, не зная контекста.

Эта штука - часть HTTP-робота определённого назначения. Точнее, часть библиотеки для создания нескольких таких роботов.
Во-первых, там не правильный XML, а произвольный HTML. Применение XML-парсеров отпадает хотя бы поэтому (да и без этого - использовать что-то типа DOM в нагруженных приложениях - ужасная нагрузка по производительности, в частности, из-за динамического мусора; ad-hoc разбор здесь рулит). Т.е. максимум, что возможно - написание какого-то HTML-сканера и уже работа над ним. Ввиду "порнографичности" неправильных HTML-ей я не вижу преимуществ от такого сканера по сравнению с непосредственной "смесью" синтаксического и лексического разбора.
В итоге, от библиотеки требуется: 1) возможность лёгко написать сценарии выковыривания нужных мест из неправильных HTML-ей; 2) быстродействие. Эти задачи решаются на 5 с минимальным набором вот таких функций.

Теперь переоцените решение в данном контексте, если хотите.