Naja, ganz so würde ich es nicht steuern.
Generische Menüs machen eigentlich überhaupt keinen Sinn.
Sinn und Zweck einen Menüs ist doch wohl, ganz bestimmte Auswahlen in einen Zusammenhang zu bringen und für den Anwender leicht zugänglich zu machen.
Dabei kann eigentlich die Auswahl selbst nicht dynamisch sein. Die Auswahlpunkte sind also starr kodiert.
Was die Möglichkeit der Auswahl betrifft, so hast du Recht dies über COND zu steuern, wobei CHKPGM eigentlich nur die Verfügbarkeit eines Objekts prüft. Bei *PUBLIC *USE wird das meistens doch positiv.

Was das Tag &MSG angeht, so ist dieses eigentlich nur für verschiedene Sprachen sinnvoll, so dass je Sprache zur Compile-Zeit die entsprechende Lib der MSGF vorgeschaltet wird und das Menü in die Sprachlib gestellt wird.

Für wiederkehrende Definition solltest du dir halt Copystrecken mit ".im" reinziehen (z.B. COND und Keylisten).