There is no need to "discard mail for the catch-all"; just don't use a catch-all! I know of no wildcard or regex matching available via the panel - how good are you with procmail?
Nope - there is no published API; your ability to kludge something like that together is highly dependent on your programming wizardry, and I can't do it. There is spam-assassin, and ways to diddle that, but not in the way I think you are describing. SOme have scripted simple mail system interface functions, but they are not very sophisticated and are easily broken should DH change anything in their panel. Again, there is no reason to :fail: an incoming mail if you are not using a catch-all, and catch-alls are just an invitation for massive spam loads on mail servers. My advice is to avoid using a catch-all at all. Why put the server through that. Rather than accepting everything and then "filtering" it, just bounce stuff you don't want.
DH is much the same, though you can add an unlimited number of forwarding address at one time via a "forwarding only addresses" "text area" form field - cut-n-paste away!
One other note, DreamHost does not allow "any and all" forwarding - for instance, DH will not forward to an A*L address, or Comcrap, or forward catch-alls to "non-DreamHost" mail accounts.
No, only by domain/subdomain, etc.
Yes. See above answer re. "Mass editing of forward only addresses" via text-area form field from within the Control Panel.
DreamHost supports "Plus addressing" - which is great for this, and makes it a lot simpler and more useful. If you have an address of "firstname.lastname@example.org", then mail addressed as "email@example.com" will be delivered to "firstname.lastname@example.org" - instant "throwaway" or easily identifiable source addresses without a separate forward/alias.