Not sure about the reason, but there were bugs reported on this issue libxml2.
They had to do with the LE, getting lost when passing it libiconv so it get's to UCS-4 that is
handled as UCS-4BE (default). libiconv would handle the case right.
No problem with UCS-4BE on most of the platforms (all except netBSD)
libxml2 before 2.7.0 fails consistently. For RHEL/Centos 5 we added a local version of libxml2 to the OSC packaging.
Still open for Debian 5.0
Debian 5.0 is EOL.
RHEL/Centos 5 builds a local version, the problem seems to be gone.