> How they are better at generating assembly than any other C like language.
If all you want from your language is to go fast without worrying about assembly or the underlying architecture or putting much effort into custom tools, C is more than good enough and its simple and old enough that multiple developers can work on the same codebase without issue.
If you want fine-grained control over the assembly you're generating, and/or access to the full capabilities of your hardware (AFAIK certain instructions on x86-64 aren't documented even in the giant Intel reference or don't have assembly mnemonics at all) the best way to do so is with custom tooling (not counting hand-written assembly because its tedious, or assembly injection directives in C compilers because its awful and not portable between compilers). You can write your assembler in any language you want of course, but the reason I think Lisp is an especially good choice is because of the powerful abstraction mechanisms available to it that you don't see in most modern programming languages.
In practical terms, you would start by writing an assembler that lets you write lispy assembly and outputs a binary. Once you have that foundation, you have the full power of lisps' meta-programming facilities to customise it to fit your problem perfectly. As far as I remember, its not related directly to lisp, but an interesting application of this idea can be found here (
http://www.moserware.com/2008/04/...res-law-software-part-3-of-3.html)
This type of thing (Assemblers written in Lisp that take advantage of Lisp meta-programming) has been done in the past, with games like Crash Bandicoot, but implementing something similar today for x86-64 might be too tedious, and it may have problems with scalability as more developers join the project and need to figure out your custom made DSLs and abstraction mechanics.