Mixing termination test clauses with different default return
values is not allowed because it is not specifed whether

(loop repeat 1 thereis nil never nil)

should return T (the default return value
from NEVER) of NIL (the default return value from
THEREIS).

6.1.2. Iteration variables in the loop epilogue

The standard is unambiguous in that the iteration variables do
still exist in the
FINALLY
clause, but not as to what values these variables might have.
Therefore the code which relies on the values of such variables, e.g.,

(loop for x on y finally (return x))

is inherently non-portable across Common Lisp implementations,
and should be avoided.

6.1.3. Backward Compatibility

There have been some tightening in the LOOP syntax between
[CLtL2] and [ANSI CL standard], e.g., the following form is legal in the
former but not the latter: