Currently, there is no way to force function {{fdef}} validation on, outside of tests and immune to override with dynamic vars. Forcing a validation in a function can be done using either with a) {{:pre}} hook or b) a manual {{s/conform}} / {{s/valid?}} call but those do not contribute to the function documentation. There are many use-cases for functions that always validate the inputs, e.g. when configuring components on application startup, done once where the performance penalty doesn't matter and correctness is important.
Schema has the {{:always-validate}} metadata for this case:
(require '[schema.core :as s])
(s/defn ^:always-validate interceptor-x
[opts :- {:string? s/Bool}])
(interceptor-x {})
; Syntax error (ExceptionInfo) compiling at (test.cljc:150:1).
; Input to interceptor-x does not match schema:
;
; [(named {:string? missing-required-key} opts)]