Here's some real examples:
(defun cider-util--clojure-buffers ()
"Return a list of all existing `clojure-mode' buffers."
(-filter
(lambda (buffer) (eq 'clojure-mode (buffer-local-value 'major-mode buffer)))
(buffer-list)))
vs
(defun cider-util--clojure-buffers ()
"Return a list of all existing `clojure-mode' buffers."
(-filter
(lambda (buffer) (eq 'clojure-mode (buffer-mode buffer)))
(buffer-list)))
===
(defun cider-remember-clojure-buffer (buffer)
"Try to remember the BUFFER from which the user jumps.
The BUFFER needs to be a Clojure buffer and current major mode needs
to be `cider-repl-mode'. The user can use `cider-switch-to-last-clojure-buffer'
to jump back to the last Clojure source buffer."
(when (and buffer
(eq 'clojure-mode (with-current-buffer buffer major-mode))
(eq 'cider-repl-mode major-mode))
(setq cider-last-clojure-buffer buffer)))
vs
(defun cider-remember-clojure-buffer (buffer)
"Try to remember the BUFFER from which the user jumps.
The BUFFER needs to be a Clojure buffer and current major mode needs
to be `cider-repl-mode'. The user can use `cider-switch-to-last-clojure-buffer'
to jump back to the last Clojure source buffer."
(when (and buffer
(eq 'clojure-mode (buffer-mode buffer))
(eq 'cider-repl-mode major-mode))
(setq cider-last-clojure-buffer buffer)))
Seems to me `buffer-mode' makes the code clearer, but that's subjective (as most things in life :-) )