We need to recur on the first segment passing an new additional argument to resolve-var indicating that we should not try to resolve in the current namespace and instead warn.
FWIW, the issue Thomas points to does in fact derail self-hosted ClojureScript, so if we improved warnings around this, that would be good. See
Found another case where this is “hiding” other bugs. A single dot is accepted as a symbol and only fails at runtime when it should at least warn or throw during compilation.
This hides another problem with type inference where (if (. response -ok) ...) is trying to resolve the . here.
For the very last comment, see CLJS-3163.