Extracts a pure, testable AdvancedSearchUtilities.EvaluateBoolean that
splits on the outermost '|' (OR) before '@' (AND), so `a@b|c` now
evaluates as `(a&&b)||c` instead of the previous `a&&(b||c)`.
AdvancedSearchThreadWorker.EvaluateRecursive delegates to it, supplying
the entity-aware leaf evaluator.