I don't think this is a language issue at all. I think it's simply a bug in the implementation. Compiling (DEFSETF BAR (#:G1890) (#:G1891) `(SET-BAR ,#:G1890 ,#:G1891)), where the symbols that look the same are EQ, is certainly supposed to work. I'm not sure I understood what Fahlman said, but he and I are probably saying the same thing.