Die Technik stimmt partiell, aber das Wesen der ACTGRP ist hier nicht verstanden.
Zwar gehen die Meinungen etwas auseinander aber du darfst verschiedene Begriffe nicht durcheinander bringen.
Der Speicher eines Programmes ist unabhängig von der ACTGRP. Hier gibt es statischen Speicher, der bestehen bleibt, wenn das Programm "aktiv" verlassen wird (*INLR=*OFF) und dynamischen Speicher der z.b. in Prozeduren beim Eintritt initialisiert wird und beim Return wieder freigegeben wird.
Mit Pointern kann man lustig quer beet arbeiten, man fällt aber ohne Konzept dann auf die Nase.

Die ACTGRP dient zur Verwaltung von weiteren Ressourcen.
Hier gehört ins besonders die Commit-Definition dazu, da man in einer Commitdefinition nur in einem Journal aufzeichnen kann und es Gründe geben kann, dies zu trennen (verschiedene Anwendungen).

Dei Laufzeit von RPG, ILERPG und CBLLE (COBOL) erlauben keine Rekursion von Hauptprogrammen, das sollte man vernünftig in Serviceprogrammen machen da diese rekursiv aufrufbar sind.
Um das zu umgehen wird gerne *NEW verwendet.
Da das aber etwas länger dauert (Millisekunden), sollte man dies nicht zu häufig in engen Zeitabständen machen, ansonsten ist das auch unkritisch.

Schwierig wird es dann, wenn man anfängt zu mischen.
OPM-Programme werden grundsätzlich in der DFTACTGRP ausgeführt und sind natürlich aus ILE ebensoo aufrufbar. Diese können dann ggf. nicht auf die richtigen Ressourcen zugreifen und reagieren gf. unerwartet.

Ich glaube so richtig verstanden wozu man dies effektiv nutzen kann hat das sowieso niemand.
In anderen Welten kommt man ohne so etwas aus da man dort objektorientiert arbeitet so dass Ressourcen gekapselt werden können.
Im Wesentlichen werden ACTGRP's nur benutzt um die fehlende Sprachenunterstützung zu umgehen.