How is:
if (-* iswm $1) {
if (x isin $1) blah
if (y isin $1) blah
}

any worse than:
param -switches x
param -switches y
if (%x) blah
if (%y) blah

?

I'm not against it as such, I just don't see you're reasoning behind how or why this would be useful.

The use of the -switch value -switch2 value2 doesn't really make sense for IRC or mIRC, it's unnecessarily complex. The syntax only has any advantage over mIRC's traditional switch syntax when you have multiple parameters with variable numbers of parameters - yet still the only way to implement that correctly is with the use of quotes to clearly mark where a switch's parameters begin and end, making the syntax even more awkward. As I said earlier, for something like mIRC commands I think anything requiring that level of complexity of switches is a result of poor command design rather than actual need.