Vermutlich wegen der Klammer.
Ursprünglich war sah die Anweisung vermutlich mal so aus:
lcd.print(DateTime.Year,DEC);
Damit war das "DEC" Teil der Print Anweisung und sagt dem Print, das die Ausgabe zur Basis 10 (also dezimal) erfolgen soll. "DEC" ist vermutlich nur ein #define.
Dann wurde aber was ergänzt und es wurde folgendes daraus:
lcd.print((DateTime.Year,DEC)+2000);
Damit ist aber das "(DateTime.Year,DEC)" eine eigenständige Anweisung, deren Ergebnis dann in das lcd.print( ERGEBNIS + 2000) eingefügt wird. Daher wird 2010 ausgegeben. Was der Compiler oder Präprozessor genau aus dem (DateTime.Year,DEC) Ausdruck macht, kann ich aber nicht sagen.