This is standard IRC behavior. When you login, your IRC client sends the USER command which includes the e-mail address field. This is used for the user portion of your fulladdress, prefixed with a tilde, unless the server receives an IDENT reply, in which case the ident string is used.
So what you are seeing is the server didn't get an ident reply. If another copy of mIRC was open and "had the port first", it would still reply to any ident requests, so that isn't it. Most likely the ident checker was lagged and didn't get around to you before the server gave up waiting. Or your ident server was unavailable, but you indicated the problem was intermittent. Try a different server maybe.
In any case, it's not a bug in mIRC, just IRC doing what it always has.