That's a rather unique idea for backwards compatibility, but really the amount of afftected users would be significantly small, and the solution to anything broken would be a simple find and replace for each loaded script/alias/popup file to find %! and modify it to something else, say %^.
Further info about my topic: "!" has multiple usages already for an escape sequence, why not add it to variables as well?
$identifiers have $!identifier to escape evaluation.
/commands have /!command to escape using a defined alias of that name.
I think variables having %!variable would be a great addition to this already common syntax for escapes.
Figured i'd chime in on some more complex examples to demonstrate why this is useful.
which of these two look cleaner, and easier to follow?
//var %a 0 , %c 0 , %q 0 | scon -at1 var % $+ a % $+ a + 1 , % $+ c % $+ c + $!chan(0) , % $+ q % $+ q + $!query(0) | echo -a $+(%a,/,$scon(0)) active connections, %c Channels and %q Queries.
//var %a 0 , %c 0 , %q 0 | scon -at1 var %!a %!a + 1 , %!c %!c + $!chan(0) , %!q %!q + $!query(0) | echo -a $+(%a,/,$scon(0)) active connections, %c Channels and %q Queries.