Die Dokumentation von pgf beschreibt, wie das Argument in solchen Fällen geparst wird:
When the node text is parsed, the
command \\ is redefined internally.
This redefinition is done in such a way
that the text from the start of the
node to the first occurrence of \\ is
put in an hbox. Then the text
following \\ up to the next \\ is put
in another hbox. This goes on until
the text between the last \\ and the
closing } is also put in an hbox.
D.h. es ist keine gute Idee, die diversen Zeilen (und damit auch die trennenden \\) in ein\textcolor-Argument zu stecken. Die Zeilen sollten für sich allein vollständiger Code sein.