Was verstehst du an dieser Stelle unter kopieren? Mit deiner einfachen Zuweisung hast du ihn doch kopiert. Delphi erhöht automatisch den Referenzzähler des Strings. Wenn du dann den Ziel String änderst, ändert sich nichts am original String, denn erst wenn der Zielstring geändert wird, wird auch ein neuner Speicherbereich allozieriert und dem Zielstring zu gewiesen.
Ehrlich gesagt, habe ich mir darum noch nie so den Kopf gemacht und alles schön der Compilermagic überlassen.