This is because identifiers are evaluated for each command that processes them. So, once when you send them to a different CID (/scid N), and then again when a command (in this case "/msg") is used.
Setting it unevaluated to %var and then using "/scid N /command % $+ var" inserts an extra evaluation (the $+), which you obviously cant do with "$!1-" / "$ $+ 1-" or it will evaluate literally to "$1-"

Hope that helps. smile