That's correct, some networks use * to indicate a hidden key. mIRC checks if it has received a * as the key and if so, it hides it.

mIRC isn't assuming anything about who can and can't see the key. If mIRC receives *, then it doesn't know what the key is, so it can't show it, it therefore blanks out the * as a blank hidden key. If mIRC does not receive *, it simply displays the key as whatever it has received.

If anyone can think of a solution to this without breaking this feature on IRC networks that support hidden keys, please let me know.