Why can't rules have label conditions? Is there a way to get that functionality?

The rules are very weak. It’s simply allows all or any of a set of conditions where the predicates look at aspects of the mail text, and whether it’s starred.

Then you can manually fire off the rule.

Why can’t you have rules based on other mail metadata, such as the presence or absence of a certain label? Why not have a feature where you can trigger rules based on events, like mail incoming, or mail being assigned to a label, or other things?
Why not have instead of Any or All, how about Any of x y z where x, y, z are All of some conditions, like a nested expression?
There are no mail date predicates in rules.

Will these features be added or could this stuff be done via a plugin?