Ha ha ha! Absolutely fantastic. The wizard would be proud! How do you handle tail call optimization with JavaScript? (at least, until the next version of JS with proper tail calls - woot! http://wiki.ecmascript.org/doku.php?id=harmony:proper_tail_c... )
The definitions of all the caddr, cdadr variants is kind of fun, and the definition of "lookupVariableValue" is enlightening, if you were curious about how that sort of thing worked in Scheme.