補足。
>case-sensitive-package-p の動作は現在のパッケージのケースの扱いに依存するのに
これは、たとえば
(defmacro alambda (params &body body)
(let ((symname (if (case-sensitive-package-p) "intern" "INTERN"))
(self-symbol (intern symname)))
...)
のように定義した場合、symname は *package* の値に応じて "self" だったり "SELF" だったりするのに対し
self-symbol はマクロを定義したときの *package* のケースの扱いに応じて |self| か |SELF| か
固定的に決まってしまう、という話です。