before anyone gets too wound up about flaunting the Tcl standards they should read the code in various tk and tcllib
procs for handling flags and decide if they like the internals better there.
Personally I don't like having to roll my own parameter parsing
and I like the convenience and robustness of ad_procs arg parser (which is really a side benefit and the real advantage is the documentation stanza).
Also, the abomination that is db_multirow is not a
consequence of anything planned or of ad_proc or anything else, rather it is in the state it's in because
it was modeled on
db_foreach (which used proc_doc) and it looks the way it looks since it started life without the ad_proc arg parser,
sprouted warts over time
and has a combination of internal hand rolled option parsing
(the above mentioned "standard" convention) and ad_proc parsing for
some things that were added subsequently.
On the other hand
I don't see people getting it wrong in their code
so I don't think its a problem that it has some cruft.