Here are four problematic expressions.

;; crashes
(defun foo ()
  (let ((a (bar)))))

;; syntax err
(defun foo ()
  (let* ((a (bar)))))

;; returns nil
(defun foo () "bar")

;; doesn't return nil
(defun blah ()
  (or (foo) (progn (bar) nil)))