Wenn dir der Overhead von ein paar Microsekunden relevant erscheint...

Allerdings ist der Aufwand, eine SP aufzurufen erheblich geringer als per CWBX einen RemoteCommandCall abzusetzen.
Ausserdem erfolgt der Aufruf in einem ganz anderen Job.
Per SP kannst du auch Resultsets zurückgeben, per CWBX nur Strukturen die du mit zusätzlichen API-Aufrufen bedienen musst.

Was deinen Zeichensatz angeht, so kann ich mir das eigentlich nicht erklären.
An irgendeiner Stelle scheinst du eine CCSID falsch anzugeben bzw. es schlagen irgendwelche Defaults zu.

Wichtig ist folgendes:
Die Datei und das System müssen eine CCSID <> 65535 haben!
Ggf. sollte der Anmeldeuser im USRPF eine CCSID <> 65535 haben!

Hast du in deiner ODBC-Konfig das Häkchen für CCSID-65535-Umsetzung setzen müssen ?
Wenn ja, haben deine Dateien keine CCSID und es kommt genau zu diesen Effekten. Irgendwo gibts halt einen Unterschied.