Agreed, I am not sure expat is that bad, but indeed XML::Parser is a royal pain to deal with, especially when trying to be compatible with various versions.
If I had started writing XML::Twig a little later, I would probably would have written it using SAX, and I would have been able to change the parser. As it is, SAX was very new at the time, all other modules were built on top of XML::Parser, so I went with that, and then it got so entangled with XML::Parser's quirks that decoupling them would be real hard now.
Oh, and don't feel bad advocating XML::LibXML, it is indeed a very fine module.