The default backend in the XMLRPC parser is REXML. This should work at most occasions, but it definitely isn't the fastest implementation. The attached patch allows a backend using libxml-ruby http://xml4r.github.io/libxml-ruby/ which should be more efficient. It successfully passes the unit tests available in the file test/xmlrpc/test_parser.rb
The default isn't changed in this patch, so when libxml-ruby isn't available nothing is changed. Even if it's available, you still have to change the parsing backend before it is used.
This seems like a very reasonable idea. (Maybe it would even be possible to add support for Nokogiri too?) One thing though, is there a way to not load REXML at all if it is not needed?
I guess support for Nokogiri will be possible as well, I just needed something more efficient than REXML and libXML was the first thing I tried, and it just worked.
Regarding your second point: that really needs some restructuring of loading the backends, I think that is a little bit outside the scope of this ticket.