Schein mal in mein Build-Tool rein (https://github.com/andreas-prouza/ibm-i-build) dort habe ich ein paar Beispiel Sourcen wo ich das genauso mache.
(Z.B. in: prouzalib/qrpglesrc/logger.sqlrpgle)

* ich verwende sowohl /Include als auch /Copy
* Hostvariablen die mit like auf eine E-DS in der /Copy oder /include verweisen
* Ich verwende auch den *LVL2

Ich meine, dass es hier keinen Unterschied gibt ob IFS oder SRC-PF.
Die von dir beschriebenen Probleme kommen mir bekannt vor, aber noch aus der SRC-PF Welt.
Habe jedoch vergessen was dann die eigentliche Ursache war.
Manchmal ist es auch ein Folgefehler gewesen.

Vielleicht noch eine Notiz am Rande:
Da ja nicht alle Sourcen direkt aus dem IFS kompeliert werden können (DSPF, PF, LF, ...), müssen diese vorher in eine temp. SRC-PF kopiert werden.
Im Build-Tool hab ich einfach vorgelagert ein CPYFRMSTMF drinnen.
Wenn (aus mir aktuell unbekannten Gründen) auch RPG Sourcen besser nicht direkt über's IFS kompeliert werden sollen, dann kann man auch für diese den CPYFRMSTMF dazu fügen.
Die Sourcen sind zwar dann im IFS Kompeliert werden sie schlussendlich aus der SRC-PF.
Bis jetzt hats auch so bei mir geklappt. Aber ja, SQL Precompiler ist manchmal grundsätzlich etwas mühsam.