See here for the original issue: https://sourceforge.net/p/testlilyissues/issues/5180/
Reporter:
#5180 Inconsistent "no \version statement" warning
I don’t know who might care about this, but when Lilypond processes an empty file, it prints a warning about not finding a \version statement, yet when it processes a file containing only \include “english.ly”, it does not mention that there is no \version statement.
Response:
Looks like we should outcomment the \version statements in files
intended for inclusion by the user. That way they will not mess with
the version of the session while still being accessible to convert-ly.
Or we make \include restore the version-seen status at its end (or let
it only be set in main input).
See here for the change: http://git.savannah.gnu.org/gitweb/?p=lilypond.git;a=commit;h=8f95c1d407d42ce3f3db46c2d4e7a4479d186429
Commit message:
Issue 5180: Require \version statement in main file
The warning about a missing \version statement got omitted when
including a file (such as a language definition file) containing
one, even though it does not really relate to the version of the
main file.
Thus, according to the developers, it was not that earlier versions did not have a problem, and now it does — rather, earlier versions had a problem, and they fixed it. To answer your question of “why the version number isn't respected in the include,” the answer can be gleaned in the code there (although I am only guessing at what it means). As for why they chose this, it sounds like the “version” statement was counting only for the \include
d file and not for the one that was doing the compiling. (I used to use it this way.) That is my guess. I could be wrong.