it will still work when it can’t be resolved though, but you’re right, when it’s there, it is used:
user=> (defmacro foo [] `foo/includes?)
#'user/foo
user=> (macroexpand '(foo))
foo/includes?
user=> (require '[clojure.string :as foo])
nil
user=> (macroexpand '(foo))
foo/includes?
user=> (defmacro foo [] `foo/includes?)
#'user/foo
user=> (macroexpand '(foo))
clojure.string/includes?
syntax-quote (`) actually resolves the symbol, while regular quote doesn't
compare
(require '[joker.os :as os])
(println `os/t)
prints joker.os/t
(require '[joker.os :as os])
(println 'os/t)
prints os/t
that's why qualified symbols inside syntax-quote "use" required namespaces
so the former doesn't trigger "unused namespace" warning while the latter does