Setf expansión extraña

Intentando entender qué setfpuedo hacer, llamé (macroexpand '(setf (aref vec i) val)) ⇒ (let* ((v vec) (v i)) (aset v v val)) Esto parece obviamente incorrecto. Sin embargo, no pude crear una instancia real donde (setf (aref ..falla. P.ej (setq vec (make-vector 10 nil) i 3 val 'foo) ⇒ foo...