clj-kondo so far only treated "string" namespace names as JS libs, so you can use namespaces as constructors etc. E.g.
(lint! "(ns foo (:require-global [\"Dude\" :as b])) (b/dude) b (new b)"
{:linters {:unresolved-symbol {:level :error}}}
"--lang" "cljs")
I guess shadow-cljs will also treat :require-global + symbol (non-string) as something on which no advanced compilation stuff should happen, similar to NPM libs?