Two key points you raised.

1) The variable name convention I suggested "just isn't used" (in your words). This is the very reason I suggest it, because it wouldn't clash with naming conventions currently seen in mIRC scripts, and because it IS a standard naming convention seen in a plethora of other programming languages--even your own nickname--lending to general familiarity and appreciation.

2) "My suggestion isn't "entirely" backwards compatible." I never said it was. The only case it isn't backward compatible is, as stated above, if someone happened to use a "just isn't used" naming convention like "%array[%i]". But I'll take your word that it "just isn't used", which then should make my suggestion "entirely" backwards compatible.

I understand that a complete reworking of the parser using quoted text and evaluated expressions would clean things up nicely, but it's really not the issue I'm putting on the plate here.

I believe that the changes expressed in my suggestion would require a minimal amount of work to implement. Since variables are already placed and discovered by the parser, this suggestion only requires further pre-parsing of those variable names. Your method would require a much broader scope of script parsing, and would more-likely interfere with existing uses of (...) such as IF-conditions and identifier parameters.

Well. At least I won lunch.
Good philosophy, see good in bad, I like!