I love it! Just some extra clarification for people coming across this:
_ should be read as “any” value. Or not a defined value.
Which is to say with this usage ?p becomes all pages in the graph. As [?p :block/name _] simply means a page with any name.
So it isn’t necessarily empty as it is any.