Schaut so aus, als ob die Person, die diese
Unit für Delphi 2009 und höher portiert hat, keine Ahnung hatte (siehe auch die vielen Warnings, die der Compiler für die
Unit wirft - ich hab grad v1.07 gezogen). Für mich sieht das so aus, als ob er annimmt, dass ein UTF8 String als UnicodeString gespeichert wird (also für ein ü 2
Unicode Zeichen verbraucht werden - analog wie es vor Delphi 2009 in einem UTF8 kodierten AnsiString der Fall war (siehe Warning W1058 an von dir bereits genannten Stelle - Zeile 1883).
Im übrigen nimmt die ParseText Methode schon den falschen Datentyp entgegen - wurde vermutlich auch nicht bei der Umstellung berücksichtigt (siehe W1057 in der entsprechenden Stelle - Delphi führt dort eine automatische UTF8->UnicodeString konvertierung durch)
Und nein, UTF8String ist nicht veraltet ...