Общий Lisp HyperSpec говорит в записи funcall, что
(funcall function arg1 arg2 ...)
== (apply function arg1 arg2 ... nil)
== (apply function (list arg1 arg2 ...))
Так как они как-то эквивалентны, когда вы используете apply, а когда funcall?