Even if mIRC waits for the first mode to return, it still won't know if it has the full mode list, since the mode was issued while you were not an op, and just checking for a +k key value may not be enough, eg. some networks might hide multiple mode keys from you when you are not an op.

In order for mIRC to avoid sending a second mode, it would need to know whether the server hides keys or not. One solution would be to add a new 005 numeric token, such as OPMODE=N, where 0 means modes are not hidden, and 1 means modes are hidden.