The biggest problem is so much of music notation's meaning is defined by it's graphical information, not just the content. This is where it differs significantly from code or even text typesetting. At some point, you have to get into the nitty gritty of where to place symbols on the page. Lillypond gets you part of the way, but the last part is really hard to do and most users are more comfortable with a WYSIWYG setup.
Even more than precision, you need consistency. You need to tweak the rules, not just the elements, to make a score look good. So WYSIWYG doesn't buy you that much.
Eh, but "rules" only get you so far. There's tons and tons of situations where a human with eyes just needs to make a decision to "make it work." That's where "systems-based" engraving falls apart. It comes with practice and experience of doing the art over and over, and encountering all those little nuances in real scores and figuring out how to solve them.
The reason Lilypond is so good is that two people who really, really knew engraving took the time to codify a lot of those rules.
Then you might like 'faust' or 'pure data'.
or ChucK or or SuperCollider or CSound or any one of couple of dozen of domain specific live coding languages ...