You can use 'apply' only on normal functions evaluating their arguments. In 'case' the parenthesized terms are never evaluated but broken up by 'case' directly to access the innerts. In LISP lingo functions which do not evaluate their arguments are called special functions or special forms because they do not follow the normal evaluation rules.