This certainly looks more tail-recursive.
This enables #keep-selection to work with spatial filter items.

Here I just compiled a filter description out of all the non-#union filter
items, and added {spatial:false} to the filter arguments.
Restricted jQuery selector to one level of nesting.