So I spoke too soon! The code you supplied works great, and I tried to further limit the scope to only items with a todo state that was set to something (i.e. not items with no todo state, and not items from the DONE side of the pipe).
I put together something that seemed to work in a Scheme repl online (it correctly returned #t or #f) but I haven't gotten it to work in the search bar. For the test repl I replaced your comparisons of, for instance, "(eq? (item-scheduled item) #f)" with a simple "(eq? #f #f)" because I knew they worked, and focused on getting an if-statement with the memq operator working, like this:
(if (memq (item-state item) (org-todo-action-keywords) #t #f))
Like I said, I got it to work on another repl (I defined item-state and org-todo-action-keywords in the repl with dummy data), but maybe I'm missing something about the scheme that's in Beorg (or I transcribed my working code incorrectly or have some boof with the various parentheses levels).
It's not possible to do this using the "simple" search syntax, you need to enter a Scheme expression. The following should work (you can type this directly into the search bar and then add as a saved search:
(and (eq? (item-scheduled item) #f) (eq? (item-deadline item) #f) (eq? (item-active-date item) #f))
Drew Lanning