Für mich ist erstmal wichtig zu wissen, dass das ein Fehler von Lilypond ist, nicht von mir.
Es gab auf der interntionalen Liste einen thread zum Thema, ich finde ihn allerdings nicht mehr. Insofern versuche ich mal in meinem Gedächtnis zu kramen

Das grundsätzliche Problem besteht darin, daß es einige Funktionen gibt die etwas zu einer Variablen hinzufügen.
Das prominenteste Beispiel ist \addlyrics { ... }
(Es gibt noch andere, auch wenn sie mir im Moment nicht einfallen.)
Damit das funktioniert muß der parser beim lesen der Variablen natürlich abwarten, ob so eine Funktion denn gesetzt ist. Deshalb ist die Variable beim
direkt folgenden Aufruf noch nicht "fertig".
Da man nach addlyrics ein weiteres addlyrics anschließen kann, schaut der parser in solchen Fällen nach "oben" und nach "unten" und das Problem setzt sich fort ...
Es handelt sich also eigentlich nicht um einen
Fehler, sondern eher um die
Kosten, die man aufbringen muß, wenn man Funktionalität wie addlyrics implementiert.
Nicht das ich ein Freund von addlyrics wäre. Es fliegt viel zu schnell aus der Kurve, sobald die Lage etwas komplexer wird. Aber es ist sehr populär ...
Ich hoffe ich habe das einigermaßen korrekt dargestellt, aber ich meine es ist de facto noch komplexer/komplizierter ...
@Harm:
Welches sind denn die "Verdauungsprobleme", die Lilypond mit Lösung 1 in der 2.19.x Version noch hat ?
Eigentlich war ich überrascht, daß Lösung 1 in 2.19.20 funktioniert hat, denn
\version "2.19.20"
foo = { c''1 }
\fooklappt nach wie vor nicht.
Gruß,
Harm