When you use /scid or /scon with an associated command, /sc(id|on) first evaluate the parameters, then the associated command is executed so the parameters of this command are evaluated a second time.
This is not new but now the problem is that local variable are preserved during the second evaluation :
//var %a $!me | scon -r echo -a > %a | scon -r echo -a > % $+ a
whereas $N parameters, which are also local to a "scope", are not :
//tokenize 32 $!me | scon -r echo -a > $1 | scon -r echo -a > $!1

Looking for a good help channel about mIRC? Check #mircscripting @ irc.swiftirc.net