Two reasons:
1) It's not instant. As you said, it would require getting a response from the server each and every time the identifier is called. Even what we could call an 'instant' reply would be extremely slow by scripting standards, and more often than not it would take upwards of a second - very noticeable lag in a scripting situation. It might not even return at all. All this makes the identifier very unreliable and potentially script-halting. Who's going to want to use if ($onchan(nick, channel)) { do stuff } if it might lock up mIRC for several seconds each time it's run? It makes far more sense to have a scripter handle the whois reply himself so that mIRC isn't locked while waiting for the reply.
2) It would only return the results of channels which are not set with modes to make them hidden from other users (ie. +s and +p). Again, unreliable.