result := StringReplace(result, '\u00e4', 'ä', [rfReplaceAll]);
Ist das echt legitim, einen String mit sich selbst ändern zu wollen?
Wo man mit der CE-Version endlich die Quellcodes ansehen kann, sieht man, dass StringReplace intern Source in eine Zwischenvariable speichert.
Also alles
legitim.