In CL, any non-NIL value is treated as true by conditionals, such as if, whereas in Scheme all non- #f values are treated as true.
The Scheme standards documents require tail-call optimization, which the CL standard does not.