You need not only discover the defining forms but also the "using"
forms. So you need to know that the arguments to `make-local-variable`,
`add-hook`, `symbol-value`, `facep`, ... (and all function that pass
their arg to one of those) are not just random symbols (that you should
leave untouched) but symbols that obey the namespace rules.
I think these situations are rare enough that we can ask people to pass
fully-qualified symbols.
Experts would have no trouble dealing with that, indeed, but it would
introduce extra complexity which will negatively affect the average
user, I feel.
FWIW, I think elisp should just literally copy Common Lisp's approach.
I thought your previous message was saying you don't like this approach
(when you said "I don't like reader magic"). Is it that I misunderstood
or that you don't much like the solution but think that from a pragmatic
point of view it's still the better option?