A test shows that if you create a .ino file with a name starting in "z", and putting your global variables in that, actually works because the IDE seems to load:
- The main file first
- Other files in the same directory
So provided all your global variables were in the first file you would be OK. But if you were trying to be really organized and only have (say) comments in the main file, you might fall into the trap.
My objection to the "concatenate source files together" is that it isn't very C-like. Usually a file is a compilation unit.
I think you might hit subtle problems, for example if you had a static variable, you might think that the variable's scope was only the file it is in, but with concatenated source files its scope is longer than is obvious.