Dies liegt in der RPG-Konvention begründet, dass eben ein Name nur genau einmal definiert werden darf.

D MyDs1 DS
D MyField 10

d MyDs2 DS
d MyField 10 <== Unzulässig

Dem Compiler ist das schnurz egal, ob eine DS based ist oder nicht, für ihn sind das erst mal 2 verschiedene Variablen, da zur Laufzeit ja der Inhalt eines Pointers verändert werden kann und dann die Adresse eben NICHT mehr die selbe ist.

"qualified" umgeht das insofern, als dass der Name eben in Verbindung mit dem Strukturnamen eindeutig ist.

D MyDs1 DS
D MyField 10

d MyDs2 DS qualified
d MyField 10

MyField <= Feld der MyDs1
MyDs2.MyField <= spricht ja wohl für sich