> Your second example throws an error for me. (SBCL)
According to the CL standard, you shouldn't be able to redefine or shadow special operators, functions, or macros in the COMMON-LISP package. SBCL does the right thing by the spec, but it's really a weakness of the spec that makes CL less general than it can be.
This restriction and the multiple namespaces of Common Lisp (and given appropriate use of gensym) is why almost all of the time CL macros work without need of hygiene. But there's nothing stopping surprises when you call functions or macros defined in packages other than COMMON-LISP.
According to the CL standard, you shouldn't be able to redefine or shadow special operators, functions, or macros in the COMMON-LISP package. SBCL does the right thing by the spec, but it's really a weakness of the spec that makes CL less general than it can be.
This restriction and the multiple namespaces of Common Lisp (and given appropriate use of gensym) is why almost all of the time CL macros work without need of hygiene. But there's nothing stopping surprises when you call functions or macros defined in packages other than COMMON-LISP.