mIRC is aware of the active window, it just isn't using it (by design).
The problem with /whois is two-fold:
1. "show in active" isn't really show in "active". It's really more of "show in the window the command was processed from", but this is naturally too long to put into a dialog. So from the start, we're not actually expecting /whois to be echoing to $active.
2. /whois has the same behaviour as /echo (without arguments), /say and /me. As I alluded to above, these commands aren't actually shorthand for "msg $active" or "describe $active", but rather they use the window id of where they were processed from. This is how "/timer 1 5 /say hi" will message the channel you typed it in regardless of whether you switch windows within that 5 seconds. This is the "limitation", or design flaw if you'd like, that keeps /whois from echo'ing to the active window and instead makes it use the window from which it was processed.