> but it's the wrong tool.
And what is/what are the "right" tool(s) for the above use case?
Tools that understand the symbolic nature of the Lisp family of languages. For the examplw you have since, Tools that rely on way or the other really on the 'read' Lisp primitive.
xref-find-definition does. xref-find-references doesn't, yet, as far as i know. C-h f is fine, and so is completion-at-point.
Grep, as you very well note, is already flawed, not only for Lisp, but for many languages. By "flawed" I mean: it is not suitable for categorically answering questions e.g. about how functions relate to each other (callers and callees). It fails even on C, for example by the mere existence of comment blocks. Should comment blocks be outlawed in C?
In contrast, in some common lisp IDEs you have such tools and expose this database. Xref in Emacs was originally derived from work of a Common Lisp programmer, which created the amazing SLIME, which you may have heard of. SLIME (and my fork of it Sly) are indeed able to use these databases.
André's comment is very accurate. In SLIME, one eats Lisp with a spoon, not a fork.
João