I just asked the LilyPond documentation editor (also known as "my brother") and LilyPond isn't completely written in Lisp; it's a "rather unholy" combination of Scheme and C++.
This is, however, still an improvement on the early days, when it used TeX as well...
I'm not sure why they bothered with C++ at all. The essay says the parsing code is 6000 lines of C++. It seems that if they wrote the whole thing in Scheme, they would have gotten that way down, and then the parsing would have been extensible as well.
This is, however, still an improvement on the early days, when it used TeX as well...