Vermutlich ist das wie z. B. bei Variablennamen möglich, ja.
LilyPond lässt sehr viel Freiheiten in der Syntax. Statt \tempo "Allegro" kann man z. B. auch \tempo Allegro schreiben. Gleiches gilt z. B. für \clef, aber da muss man "treble_8" dann doch wieder zwingend in "" setzen. Mir ist auch nicht hundertprozentig klar, wann ein String und wann ein Symbol erwartet wird bzw. wann was möglich ist. Symbole (in Scheme z. B. 'Staff) und Strings (in Scheme z. B. "Staff") sind an vielen Stellen anscheinend austauschbar. Und es ist mir auch nicht ganz klar, obs nen Unterschied zwischen Symbolen und Strings ohne "" gibt (bzw. ob letztere existieren). Da müsste man mal in den Parser-Code schauen.
Leichter tut man sich vermutlich aber, wenn man Dinge, an denen Symbole ausreichen, entsprechend benennt (z. B. SmallStaff) und Dinge, an denen i. d. R. ein String stehen soll, auch in "" setzt, z. B. bei \tempo.
Um nochmal auf obiges zurückzukommen: Ein Symbol kann auch einen Namen mit Leerzeichen etc. haben, in Scheme kann das aber soweit ich weiß nicht direkt eingegeben werden, sondern nur mithilfe der Funktion string->symbol.
Edit: Es steht im Parser zu neuen Kontexten was von „NEWCONTEXT symbol […]“, wobei NEWCONTEXT konstant \new ist. Trotzdem ist aber \new "Staff" mit "" erlaubt. Komisch, das alles.