Through a quick test, it looks like ; is already treated differently at the beginning of a line, so I guess that part doesn't make much difference. If at the beginning of a line, it comments the entire line including |'s.
Now, that still leaves us with the individual issues that people trying to use it in the middle of a line will have. In your case, stopping at the } makes sense. In the last example I gave above with the nested IF, it doesn't make sense to stop at the }. Because these are both edge cases that contradict each other, it is better to leave it this way because: 1) Any scripts that make use of inline ;'s the way they work now will probably break with a change, 2) Your issue can be fixed easily with the extra |, but the nested IF can't be fixed if the change is made other than to separate the lines.
I still think the best solution is to request /* */ style commenting in the middle of a line. That gives full control over where the comment starts and ends rather than having mIRC guess what you want.