(defun my-append-1 (lst1 lst2)
(if (null lst1) lst2
(cons (car lst1) (my-append-1 (cdr lst1) lst2))))

(defun my-append (&rest lsts)
(cond ((null lsts) lsts)
((null (cdr lsts)) (car lsts))
(t (my-append-1 (car lsts) (apply #'my-append (cdr lsts))))))

my-append-1 を末尾再帰にして reverse を使うという手もある。