Common Lisp does not require TCO. This runs on emscripten port of Embeddable Common Lisp - this platform support is relatively new. I'm also working on WASI port and an optimizing compiler at runtime (currently we use bytecodes compiler when running).
Oh wow.
I always thought TCO was part of the spec itself.
Scheme requires TCO. It is a different Lisp (it also has standard[s]).
And revisions[n].
CL is not particularly functionally oriented. Many things like this are absent (or present, in some cases).
The platform supporting tail-recursion is irrelevant to hosting languages that support it; e.g. the JVM does (or at least did) not support tail recursion, but kawa scheme (which does) runs just fine on the JVM.
Nitpick: JVM supports recursive tail calls, but doesn't have the "tail call elimination" optimization that would make tail calls consume 0 stack.
That's a reasonable nitpick; tail-recursion is just a special case of tail-calls, and you can do tail-calls without TCE, just not unboundedly.
WASM supports tail calls and multiple return values now