* (defun foo (x) (eql x 0.5d0))

* (time (dotimes (i 400000) (foo 1/3)))

Evaluation took:

...

  6,422,528 bytes consed


There's too much going on with EQL transforms for me to understand this but essentially by the time the compiler decides it needs to call generic EQL it has to box up the same thing that could have been referenced as a code-constant in the first place.