Bei (ILE)RPG ist ja der Name jedes Feldes nur 1x im gesamten Programm vorhanden (Ausnahme Qualified DS).

Daher spart man sich bei namensgleichheit den Move/Eval zwischen den Dateipuffern.

Das hat zwar obigen Vorteil aber häufig auch den Nachteil, dass man per I-Bestimmung die Felder ggf. umbenennen muss.

Um Pointer zu verwenden, muss man also Strukturen mit "based(mypointer)" verwenden.
Allerdings dürfen die Feldnamen zwischen den beiden Strukturen nicht identisch sein, da man ein Feld nur in einer Struktur definieren darf.
Man kann die DS natürlich dann per "qualified" defineren.
Nun kann man mit "Struktur.Name" das Feld ansprechen, aber: dieses Feld wird nicht automatisch gefüllt da die IO-Felder der Dateien nun als Single-Variablen weiterhin existieren.
Dateifelder gibts nämlich nicht mit "qualified".

Fazit:
Pointer sind für sowas absolut nicht zu gebrauchen !
In RPG gilt der Grundsatz der Namensgleichheit zwischen 2 Dateien, allerdings muss die Definition zwischen den beiden Dateien identisch sein.
Ansonsten ist man wieder beim umbenennen.