"The $, #, and @ may appear as different symbols on some Codepages" ist aber genau das Problem eines Compilers, wenn man eine Variable "$X" oder "#X" benennt und mit einer anderen CCSID compiliert.
Da wird dann aus "#" eben "£" und das ist im Namen nicht erlaubt -> ergo Compiler-Fehler.

Wenn man denn die Quelle von der Herkunft in eine SRC-PF mit der richtigen CCSID stellt und seinen Job auch auf eine CCSID (eben nicht 65535), wird die Quelle für den Compiler in die Job-CCSID gewandelt.
Dabei wird z.B. das "#"-Zeichen korrekt der CCSID zugewiesen und der Compiler streikt nicht.

Allerdings erlebe ich es (auch mit V7R1 gerade wieder aktuell) immer wieder, dass die Maschinen nicht auf die korrekte CCSID der aktuelle Sprache gestellt werden sondern systemweit mit 65535 arbeiten.
Anschließend wundert man sich dann wieder warum die Zeichen mit ODBC/FTP o.ä. so komisch aussehen.

Fährt man aber mit einer CCSID auch im System gibt es erheblich weniger Probleme dieser Art.