Das WideString hilft dabei den Code auch vor Delphi 2009 nutzbar zu machen.
Es ging aber nicht um das Wide, sondern um das "unnötige" Byte dazwischen.

Wenn man es direkt auf WideChar mappt, dann bräuchte man nicht "böse" casten.
PS: Es gibt auch noch die Funktion
SetString.
Ein Therapeut entspricht 1024 Gigapeut.