Das Thema interessierte mich so sehr, daß ich mich damit beschäftigte und hier trotz des Alters der Diskussion etwas dazu beitragen möchte:
weiß jmd. ob es nicht eh aut. eine Optimierung durch den Compiler gibt?
Anscheinend ja. Ich probierte es mit einem sehr langen String, der "einfachsten" Datenstruktur, die man sehr groß und damit sehr speicherbeanspruchend werden lassen kann. Solang in der aufgerufenen Prozedur die übergebene Variable nicht per Ergibtanweisung verändert wird, solang wird anscheinend auch kein Abbild der Datenstruktur erzeugt - zumindest läßt diese Folgerung der im Taskmanager angzeigte Speicherbedarf zu. Erst unmittelbar vor der Ergibtanweisung schnellt der Speicherbedarf in die Höhe, was auf ein unmittelbar zuvor erstelltes Duplikat der speicherbeanspruchenden Datenstruktur hindeutet.
Wenn man also die übergebene (in die Routine "hineinfließende") Variable nicht verändert, ist es demnach egal, ob man sie einfach oder mit const gegen Veränderung abgesichert übergibt.
Diese Beobachtung machte ich bereits mit Delphi 2.0 (und 3.0).