Из того, что я понимаю применительно, он распаковывает список и превращает элементы в аргументы для функции.
Я вижу, что (apply + [1 2 3]) работает, как ожидалось, т.е. эквивалентно (+ 1 2 3).
Почему тогда (apply или [true false]) неверно? Разве это не эквивалентно (или истинному ложному)?