Cute, but why not just: (EVAL (SETQ X '`(EVAL (SETQ X ',X))))
Also, SETQ on an undefined variable has undefined consequences (if X is to be treated as special or not. In real implementation's the symbol-value of that symbol is set(so no lexical meaning), however a few implementations will proclaim X special, which can have unintended, and even harmful consequences for your code(while others won't do such a proclamation). It's best to specify exactly what you are setting instead on relying on undefined behaviour).