Hier liegst du leider falsch.
Die DB interessiert sich tatsächich nicht dafür, SQL sehr wohl.
Durch OPTION DATFMT wird für den Precompiler festgelegt, wie die SQL-Variablen eines Datums generiert werden denn für jede Hostvariable wird (dummerweise) eine SQLxxxx-Variable definiert.
SQL (hier der Precompiler) generiert dann das Datumformat explizit für jede Variable.

Die H-Bestimmung ist für die RPG-Variablen zuständig, die ich selber ohne ein Datumformat definiere.

Wenn ich dann also ein *DMY-Format für SQL festlege gibts zur Laufzeit von SQL einen negativen SQL-Code (oder NULL-Anzeiger -2) da ggf. der DB-Inhalt nicht in die SQL-Variable übertragen werden kann.
Eine RPG-Laufzeitfehler gibt es bei der Übertragung meines Datums von *ISO in die SQL-generierten Variablen.
Habe ich für SQL *ISO/*EUR festgelegt und für RPG dann *DMY gibt es einen RPG-Laufzeitfehler bei der Übertragung aus SQL-Variable in Hostvariable.

Noch mal zur Begrifflichkeit:
SQL ist die Sprache der DB umd muss sehr wohl das verwendete Datumformat kennen.
Selbst bei ODBC/JDBC muss ich das Datumformat korrekt definieren da SQL sonst nicht damit umgehen kann.

Wie die DB letztlich intern ein Datum speichert ist in der sache vollkommen irrelevant.

Die "+++++"-Ausgabe ist eine Spezialität des STRSQL und hat mit embedded SQL nichts zu tun.