While it's part of homoiconicity, I'd stress that a great part of the language is that it grows without warts. Because the "syntax" is so insanely regular, new layers of abstraction look just like the builtin layers.
With something like SBCL, you can literally write assembly in lisp notation (called VOP in SBCL), then layer the Common Lisp language on top seamlessly, then layer your domain-specific code on top with your code looking and acting just like it is part of the native language.
When you're done, you've built language primitives up to deal with your specific problem domain then you can solve the problem with a language custom-made for your needs.