Для my_list и my_append возможны следующие решения:
(defun my_list (&rest arguments)
`(,@arguments)
)
(defun my_append (a_list an_item)
`(,@a_list ,an_item)
)
(my_append (my_list 'a 'b 'c) 'd)
Я, вероятно, ошибаюсь, но я не знаю альтернативного метода для создания пар, поэтому альтернатива "против" не представляется возможной. Тем не менее, я довольно новичок в мире LISP.