Well the syntax of the alias section could be expanded to a degree. If you use { } in the alias section it could be handled easily
aliasname [-r] { the stuff }
ie:
recurse -r { if (%a) recurse $calc(%a -1) }

That would easily handle one case in the alias section with no problems that I can forsee, and really I don't see it being a problem expanding that for all aliases:

aliasname [-r] the stuff
ie:
recurse -r if (%a) recurse $calc(%a -1)
That statement would be illegal if -r were not recognized as a flag, because it would need to be -r | if (%a) recurse $calc(%a -1), so what could be done is, if the first "word" is -r, and the next "word" is not | then interpret it as a flag, if the next "word" is | then interpret it as an alias named -r, and if the first "word" is -r, and there are no other "words", then interpret -r as an alias named -r. May not be the cleanest way, but it should work.