Returning nil is consistent across seq functions and play well with when, if-let, when-let, just to name a few...
i'd do (actually, i did) it like this:
(my-special-last coll) -> returns the last element or throws an
exception if there is none
(my-special-last coll if-empty) -> in case of an empty collections,
ifEmpty is returned
Warren, this and some of your other issues with how Clojure works
makes me curious about your language background. May I ask what
languages you're most used to? That may help us frame future
discussions about differences in opinion about features in Clojure.