FWIW, я всегда использую setf
. Если я немного изменяю структуру своего кода, мне просто нужно изменить «место» вместо места и оператора (setq -> setf).
Кроме того, не беспокойтесь о производительности, setf точно такой же, как setq для символов:
CL-USER> (macroexpand '(setf foo 42))
(SETQ FOO 42)