Wenn die Spalten feststehen und ebenso die Sortierung, kann man das Ganze direkt mit statischem SQL machen. Dynamisches verkompliziert das Ganze nur und ist auch (minimal) langsamer als statisches SQL, da die Syntax-Prüfung und erste Optimierung erst zur Laufzeit erfolgen kann).
Es ist sogar möglich beim statischen SQL mit Hilfe von CASE-Anweisungen die Sortierung dynamisch zu steuern.

In SQL-Abfragen interessiert nicht ob die Sortier-Felder aus einer oder mehreren (der gejointen) Tabellen kommen. Vielfach werden die ausgewählten Datensätze erst im letzten Schritt sortiert.
In einer DDS beschriebenen Join-File hingegen müssen alle Schlüssel-Felder aus der gleichen Datei sein. Das war eigentlich schon immer so, und da DDS seit Release V5R3M0 "stabilisiert" ist, hat sich daran auch nichts mehr geändert.