Awesome! Have you considered doing another step further -- emitting native code? :) I am a little biased because I've only ever written a Lisp -> machine code compiler, not bytecode, but I'd like to write a bytecode compiler one day.
Spaik also doesn't have an AST-level interpreter for evaluating macros, it compiles and runs the bytecode on-the-fly for macro-expansions declared and used in the same compilation unit. And I figured it'd be even more of a hassle with native code.