1) cond - проверяет условия на true/false, на первом true выполняет вторую половину и заканчивается, :else - если ничего не подошло
2) case - проверяет первый параметр (x) на соответсвие условиям и выполняет первое подходящее, возвращая результат. Очень интересна здесь работа сравнения x со списком (13 42 100500) или false.
Но пример конечно с издевкой :) Можно было бы все в cond обернуть, и не мучить разум...
Хотя, взял себе на заметку, понравилось.
В общем, сам cond отвечает за три сущности (< x) - "Negative", case - проверка на список "Special" и все остальное "Boring"