(interactive) informa ao Emacs que a função é um comando, ou seja, que a função pode ser ligada a uma chave e executada com M-x . Então (defun select-all () (interactive) (mark-whole-buffer)) deve funcionar (mas (defun select-all () (mark-whole-buffer)) não). Você reiniciou o Emacs ou avaliou a definição com C-M-x ( eval-defun )? O que C-h f select-all RET mostra? (O buffer de ajuda deve começar com "select-all é um interativo".)
Aqui, uma alternativa mais simples é
(defalias 'select-all 'mark-whole-buffer)