Meine ganz persönliche Sichtweise:

Her muss man 2 gravierende Dinge unterscheiden!
Das reine Sprachkonstrukt und die Bibliotheksfunktionen.

Bei RPG/LE enthält das Sprachkonstrukt bereits eine Vielzahl von Funktionen (z.B. Dateibearbeitung).
Die BuiltIn-Funktionen (%dec(), usw.) mag man noch als Bibliotheksfunktionen hinnehmen, gehören aber zum Sprachkonstrukt.
Bibliotheksfunktionen sind in RPGLE quasi nur als z.T. hochkomplexe API's verfügbar.

Die Sprachkonstrukte von Java, C++, c# o.ä. enthalten im Gegensatz dazu ausschließlich wenige Schlüsselworte und jede Menge Operatoren.
Daran hat sich seit Einführung so gut nichts mehr geändert und ist (meines Wissens) auch nie erweitert worden, was natürlich für die Stabilität der Sprache an sich spricht.
Alles andere wird ausschließlich durch Bibliotheksfunktionen bereitgestellt. Damit sind natürlich jede Menge Erweiterungen, Features und verschiedenste Lösungsansätze möglich geworden.
Die verschiedene Java-Versionen drücken sich nur durch verbesserte Runtime-Funktionen aus, ändern aber nichts an der Java-Sprache (ein "Stream" ist eine Funktion der Runtime (in diesem Fall ein Objekt)und nicht das Sprachkonstrukt, ein "Integer" gehört zum Sprachkonstrukt).

Bei ILERPG hat sich der Funktionsumfang nur marginal geändert sondern nur die Schreibweisen vervielfältigt und dadurch z.T. vereinfacht.
Klar ist es heute einfacher, komplexe Formeln mit einem simplen EVAL (den man auch weglassen kann) zu kodieren an statt alles wie früher in Einzelschritte zu zerlegen. Das ist aber wie gesagt keine Funktionserweiterung sondern nur eine andere Schreibweise.