Das liegt nicht am Speicher sondern in der Natur von Kommandos.

Ein CALL im CLP ruft nicht das CMD-CALL wie aus der Kommandozeile auf sondern direkt den Maschinenbefehl Call analog zum Call in RPG/COBOL.

Wenn CMD's aufgerufen werden, wird das Kommando im Speicher zusammengebaut (Runtimeroutinen des CLP's) und dann wie mit QCMDEXC aufgerufen.
Der Kommando-Interpreter hat nun mal die Angewohnheit:
Bei Zeichenketten ohne Hochkomma, die restlichen Blanks zu entfernen und wenn keine Sonderzeichen/Zahlen vorhanden sind, das Ergebnis in Großbuchstaben zu konvertieren.

Das Hauptkommando ist hier der SBMJOB der mit Parametern gefüllt wird.
Einer davon ist das halt das CMD-CALL.
Analog zu RPG wird also folgendes gemacht:

MyCall = 'CALL MYPGM PARM(' + MyDs + ')';

Möchtest du die DS als Ganzes übergeben so ist das Ganze anzupassen:

MyCall = 'CALL MYPGM PARM(''' + MyDs + ''')';