Nechci na to teď přísahat, ale co si pamatuju, tak některé deklarace Delphovské konverze libxml2 a spol. jsou špatně a uvádějí typ PChar tam, kde knihovna ve skutečnosti očekává UTF8 (takže spíš PAnsiChar). Takže Delphi přesně podle instrukcí provedou konverzi a výsledek nefunguje, protože konverze není ve správném kódování...
Rychlý regexp nad zdrojáky mi vrací, že jediné místo, kde v libxml unitách používám PChar, je v libxmlsec_openssl.InitXMLSecOpenSSL, kde to má svou logiku. Všude jinde jedu přes PAnsiChar.