Ein Pointer verweist ja nur auf die Daten und ist eben selber nur als Pointer definiert.
Was dann dahinterliegt weiß alleine die Anwendung.

Mit OPDESC zu arbeiten ist allerdings im ILE-Umfeld die schlechteste Art der Programmierung.

Prozeduraufrufe sollten immer definierte Parametertypen haben und nie generisch arbeiten.
Die Gefahr des falschen Aufrufs ist damit sehr hoch und die Anwendung wird eher unhandlich.

Im Sinne von Objektorientierung wird das auch von keiner anderen Sprache so unterstützt.
Java und .NET z.B. werfen dann Exceptions (analog CPF-Meldungen) aus wenn eine Schnittstelle nicht korrekt bedient wird.