The same reason you would use $& anywhere else. It seems legitimate to want to use $& in a while/if condition. Note that $& works in if conditions:

alias testif {
  if ((0 == 0) && $&
    (1 == 1)) {
    echo -a this works in 7.22

So it should be equally valid in while conditions.

I should point out that even though the while loop fails to "loop", the condition part does actually work. In other words:

alias test {
  var %i = 0
  while ((%i < 10) && $&
    (0 == 0)) {
     echo -a This works
     inc %i

Does echo "This works" once before the error is displayed. It just fails to jump back to the beginning of the loop and iterate multiple times. I imagine the bug is that mIRC thinks the continuation line for the loop is on line 4 of that alias because that's where it ends, so it jumps back there and doesn't find the /while command. mIRC should register the "continuation line" as the beginning of the while line, not the end.

- argv[0] on EFnet #mIRC
- "Life is a pointer to an integer without a cast"