As i discussed with Wims in channel, this behavior has been around forever, and it's related to the design of the [windows] and [fonts] sections which both use 'reserved' names which can also be valid nicks, and where the [fonts] section doesn't the $network name. For example, Wims' example command creates/alters the [fonts] entry for fstatus, so this affects all status windows.
The [windows] section controls the size and location of windows, but also uses itemnames that collide with valid nicks. For example, if your mIRC is full screen with channel and query windows being "normal" not maximized, someone else using 'main' as their nick would create in your mIRC a query window that matches the size of the main mirc window itself.
In effect, what the /font -a switch actually does is change the setting for the activewindowname, not the 'active' window. Doing that command in the status window changes fstatus that sets the font for all status window, doing it in #test changes f#test affecting that channel name at all networks, as does doing it in query window with maroon affects fmaroon which controls the font for the maroon nick at all networks.
To overcome just a portion of these issues would involve editing the documentation to more accurately describe the current behavior of -a being for the windowname instead of for the window.
To have the font change be for just the $active window, the itemname in [fonts] would need to be more similar to how it's handled in [windows], by being fstatus-freenode instead of just fstatus.
However, even that is still a valid nick. To avoid the crash against valid nicks, the reserved names need to change, so they begin with a character that can't begin a valid nick. i.e. making reserved names create .ini lines like 1main=string or +fstatus=string.