i suppose that's worth mentioning too, but not in that way (although that way is certainly unexpected behavior that might be worth fixing). here's where i'm not sure what we should expect:
//var -s %a = bla bla line of code $chr(123) bla | echo -a $eval(%a,2)
right now that returns the expected result, although the way i first thought the problem could be solved involved evaluating the line of code as if it was on a line of the scripts editor. but then it would be subject to the treatment lines like that usually receive, and the { in the line of code above would be treated as mirc syntax rather than plaintext
btw, although the above example works, you'll find a similar problem as with the comma if the last word is only 1 character:
//var -s %a = bla bla line of code $chr(123) b | echo -a $eval(%a,2)
if you experiment with that a bit you'll come across various other related oddities. $eval() has other quirks too, such as when you specify more than 2 parameters, but that's just a result of abusing $eval() and not really worth bringing up :P
the cases with (,){} are valid though and i really hope they're fixed. oh and surprisingly | doesn't seem to have any problems that i can find.. i would've thought it was in the same class as {} as far as general syntax goes