It needs a way to iterate through collections and execute a rule with each object of the collection.
I agree that this would be very useful for multiple use cases:
But it will be tricky to provide that functionality while still avoiding to create yet another programming language. I.e. I don't think this should come in the form of a generic FOR EACH loop construct.
Instead, it could be a new set of rule templates, e.g. : Execute <existing action rule template> on related records by <association name> with <related record condition>