This is a very powerful pattern indeed. I worked with a team that was moving a very complex rules validation system to a modern architecture. We chose to use a specification pattern with rules very similar to this. The benefits you list are spot on. In fact, it was so much easier to create what the rules were supposed to do that we learned the old implementation had a lot of weird bugs. Unfortunately, we wound up having to write rules to reintroduce the bugs because that was how users expected the system to work. 😂
At least we could now prove that our bugs worked...