You raise a very good point.

What you propose should be true for the entire query, but not necessarily true (I think) for all filter nodes within the query.  Imagine, ```NOT(attr_1='foo')``` versus ```NOT(BBOX(geom, -180, -90, 180, 90))```...  the first query should accept all geometries, whereas the second should reject all geometries.  (Again, part of the confusion is for how arbitrarily complex a query we assume we might get.)

It would be cleanest if we could differentiate among 1) the entire world; 2) no possible geometry (equivalent to "NOT the entire world"); 3) no geometry specified.  Without those three states -- which we should be able to support in the larger refactoring underway -- we are going to lose some information.