A small correction:
A QRY is able to return a DB_NOOP call, which kills the current code path.
Defining a database fact is not a call. There is also nothing special about defining DB_NOOP(1) compared to defining any other database fact.
A user-defined query only succeeds (i.e., a rule calling a query will only continue checking the next condition) if all conditions of one of the query definitions succeeds. The issue is that when all conditions of a query succeed, you need to write at least one action. If there is nothing that the query needs to do if it succeeds (like defining a database fact with its result), then the convention is to define the (dummy) database fact DB_NOOP(1).