No, it does really work, you just have to pay attention to the $0 == 1 && $1 isnum case, as mentioned in the referenced thread. That's not really a significant workaround.
Note that as mentioned in the thread, this is an inherent limitation in mIRC syntax, not the identifier. The solution is not to switch everything over to operators, that would only limit mIRC more as a language. Note also that operators themselves already suffer from similar syntactic ambiguities (like: if (ishl ishl ishl) { ... }), so creating an operator doesn't really solve every case either.