I think your issue is actually more related to mIRC discovering a person's user@host only after they speak at least once, because the server you are using does not support `CAP userhost-in-names` and so the colorization is initially based on their nickname only, but not their nickname!user@host. After time goes on and you learn more and more of their user@hosts across multiple channels they share in common with you, the act of parting-and-rejoining the channels, by either you or them, will cause you to see them wearing a different color.
Rather than restarting mIRC, you can use the command `/ialclear` or `/ialclear <nickname>` then rejoin those channels to reset the colors to be based in the user's nickname-only.
If you used `/ialfill <channel>` in all channels you're in, that would populate each chatter's nickname!user@host into your IAL and then rejoining a channel you have in common with multiple users will cause those individuals to retain the nickname!user@host in the IAL cache, giving them different colors.
So, it's a tricky business. Maybe Khaled should let us choose how randomized nickname coloring is hashed. By nickname-only, by nickname!user@host, or by Session ID via $ial().id