I registered the ANY and ALL operators when I was registering the NOT operator, simply because it was forgotten before and creating a new ticket would be more work than copy-pasting the NOT registration two more times.

Reviewed commit ea2a4f906dc3b5bae939a0348a5f82fa690bbec5. Just one comment:

src/lib/acl/logic_check.h
It does occur to me that there is now an inconsistency in class names. Logic operators include the operations AND, OR and NOT. Only AND and OR (i.e. All and Any) are handled by the class LogicOperator. NOT is handled by the class NotCheck. For consistency, NotCheck should be renamed NotOperator (or LogicOperator renamed to LogicCheck).

(Ideally, LogicOperator should also be renamed to indicate that it is restricted to just AND and OR, but at the moment I can't think of a better name.)

Technically, the LogicOperator? could do even more operators (the Not one is special, because it is unary), but I guess none other makes real sense. And MultiAryOperator? sounded stupid to me, so it ended up as logic operator.