Using a scheme subset seems like cheating almost. The no syntax, s expression languages allow one to avoid the entire lexing, parsing, ast generation aspect of the endeavor.
Tratt has a blog post that expands on the bit about languages implemented in themselves and the consequences:
http://tratt.net/laurie/blog/entries/the_bootstrapped_compil...