This is an issue of backwards compatibility.

I am unclear why it ever worked in 7.52 if /msg had switches in that release.

I am unclear whether use of e.g. "/msg $nick message" works when $nick is e.g. -sBNC. It may be that mIRC can already or can be made to substitute for standard identifiers that are known to contain nicknames after handling switches, but substitute everything else before i.e. "/msg %switches $nick message" works whether %switches is empty or not and regardless of whether $nick starts with a -.

The issue here is that there are hundreds of scripts which use /msg and expect to continue work with all valid user names even those starting with -.