Nein, das hast du richtig erkannt. Die MSGSFL liest alle Meldung aus der PGMQ.
Alternativ liest du die Nachrichten per API selber aus, schreibst sie in einzeilige Subfiles, statt MSGSFL's und kannst dann antürlich 2 verschiedene beschicken und ausgeben.

Allerdings gibt es eben einfachere Methoden statt erst in die PGMQ zu senden und dann wieder auszulesen. In Zeiten von ILE mit Funktionen und Prozeduren füllt man Error-Variablen die dann anzuzeigen sind.
I.d.R. ist es dem User auch nicht zuzumuten mehr als 1 Fehlermeldung durchzublättern.