is not executed as a (sequence) because there are variables in the FILTER that appear to be not bound: ?s etc in EXISTS. If it were a function, this would be correct but EXISTS is different.
Variables only in an EXISTS BGP patterns should not contribute to the unsafe variables of a FILTER.
is not safe to allow ?s to substitute. This is correctly detected in Jena 3.1.0.