Das ist nicht nur Glauben.
Der Prototyp (PR) beschreibt ja nur, was du übergeben sollst, vergleichbar zum Template einer DS.
Im Gegensatz zum PI (Prozedur Interface), dass die Felder dann auch definiert.

dcl-pr MyPgm extpgm('XXX');
p1 char(20) const;
end-pr;

dcl-s MyValue char(5);
dcl-s MyV2 packed(10:0);

MyPgm('ABCD');
MyPgm(MyValue);
MyPgm(%char(MyV2));

Es wäre sonst blöd, wenn ich erst "p1=xxx; MyPgm(P1);" schreiben müsste.
Durch "const" wird i.Ü. eine Speicherkopie erstellt, wenn der Wert nicht passen sollte.
Also ggf. abgeschnitten oder mit Leerzeichen gefüllt.