The compiler transforms (null x) and (not x) to (if x t nil).
We could to the same for (eq x nil). That would make a small difference
in code like:
(defun foo (x z)
(cond (x 1)
((eq x nil) 2)
(z 3)))
(defun bar (x z)
(cond (x 1)
((not x) 2)
(z 3)))
In bar, the compiler is able to remove the z test.
Helmut