Seems a lot more work and a great deal more confusing than the current way to code switches, which is simply if (-* iswm $1) { process $1 as a set of switches }.