Yeah that does the trick. It seems that mirc checks for variables/idents as first words before it deals with the rest of the command (and whether it contains brackets etc). A possible scenario could be that mirc 'tokenizes' the editbox content with " | " as the separator
For each token it does this:
1. Checks the first char of each token to see if it's a "%" or a "$". If it is, it halts
2. Otherwise proceeds with the normal parsing/evaluation of that token
3. Then it deals with the next token in the same way.
This theory is compatible with the results of the following test:
alias cmdtest1 echo -s cmdtest1 | return one
alias cmdtest2 echo -s cmdtest2 | return two
Typing
//!.echo -q $cmdtest1 | %i [ $cmdtest2 ] whatever | echo -s end
makes mirc print only "cmdtest1". Notice how $cmdtest1 is evaluated, as mirc has not seen %i starting a command yet. But when it reaches the 2nd pipe-separated token, it sees %i and halts without evaluating $cmdtest2, even though the latter is inside brackets.