Nun ja, da ist der %xlate(From:To:Var) eigentlich der schnellste Weg, da du ja Leerzeichen haben willst.

Was auch genauso schnell ist, ist eine kleine eigene Schleife:

d Pos 5I 0
d Var 100
for Pos = 1 to %size(Var)
if %check('gültige Zeichen':%subst(Var:Pos:1)) > 0;
%subst(Var:Pos:1)=*blank;
endif;
endfor;

Den Overhead mit RegEx würde ich bei so einfachen Sachen lassen.