The semantics that I favor (and those implemented by Spice Lisp) are that every Common Lisp function which returns an array returns a simple array unless the function is make-array or one of the arguments is eq to the result. This has the advantage of being a simple specification, and also allows the compiler to do more interesting type-inference. Rob