Code:
alias somefunction {
  params -qt45 $1-
  if (%a) { }
  if (%b == value || %c != value) {
    if (%d) { }
    if (%e) { if (%f) { } | elseif (%g) { } | else { }
  }
  etc
}

Yeah, true, have to check the variables.. But you wouldn't have to parse them, which is the point of it anyway. To parse each variable and then perform your functions/commands.
The whole idea is to split the values for you so that you can get right to the point of the script instead of spending a few to several lines parsing the switches first.

And bad command design would be forcing a strict method of using an alias where the switches should be optional or flexible. This would provide that flexibility.
cool