Yes and dynamically scoped.
Elisp supports static scoping now. Also, native-code compilation. I haven't tried benchmarking it against SBCL, though, and I would be surprised if it approached SBCL's performance.
Oh yes! I was joking that if we were going to port Arc to Emacs Lisp, I would want it to be the classic, dynamically scoped version.
I don't mean that, of course. But there's a reason for the joke. When I did extensive work in Emacs Lisp (before they added lexical scope) I came to appreciate (1) how amazing a domain-specific language it is, for the domain of a programmable text editor—it's really one of the ultimate classics of a domain language; and (2) how everything being dynamically scoped was somehow closely allied with this domain. It made Elisp less useful as a general purpose language (lexical scope is a good thing!) but arguably more useful for making and extending a programmable text editor.
That seems plausible. But I wonder how far you could get in a lexically scoped language using temporary assignments to variables that get automatically undone when exiting a scope, the way dynamic scope is usually implemented with shallow binding. Other domains where you often want such temporary assignments include floating-point math (execute this calculation with the rounding mode temporarily set to "upward") and graphics (execute this drawing with the current transformation matrix temporarily set to foo and the current color temporarily set to bar).
yeah that would be a fun thing to do, even though yeah SBCL compiled code will probably be an order of magnitude faster