Perhaps the excerpt below (from a fresh LW image) makes more obvious what my "philosophical problem" is. I have redacted the output of DISASSEMBLE to only show the relevant parts. It shows that EQ is essentially just one simple comparison with a machine word (which is what I expected). It also shows that I get the same machine word again as long as I don't mess around with UINTERN or something. But once I've done that, I get _another_ machine word and so in terms of simple-minded EQ I get a different object.
CL-USER 1 > (defun foo-1 (x) (eq x 'bar)) FOO-1 CL-USER 2 > (disassemble 'foo-1) ;; ... 21: 3DF771F921 cmp eax, 21F971F7 ; BAR 26: 750D jne L3 ;; ... NIL CL-USER 3 > (defun foo-2 (x) (eq x 'bar)) FOO-2 CL-USER 4 > (disassemble 'foo-2) ;; ... 21: 3DF771F921 cmp eax, 21F971F7 ; BAR 26: 750D jne L3 ;; ... NIL CL-USER 5 > (unintern 'bar) T CL-USER 6 > (defun foo-3 (x) (eq x 'bar)) FOO-3 CL-USER 7 > (disassemble 'foo-3) ;; ... 21: 3DAB71F921 cmp eax, 21F971AB ; BAR 26: 750D jne L3 ;; ... NIL