If I could predict the future (accurately), I wouldn't be doing what am doing now!
The methods one chooses to upgrade or use the latest/greatest (or one version behind) is really a matter of preferences of the true admin of the server. What ever floats your boat! ;)
For me, considering that, at present, coders/moodle using git to install, maintain/update, as well as upgrade, I'll choose that one - every time (prior to git, BTW, cvs was used).
The site stays where it's at ... including the FQDN of the server ... it's only files/config that changes.
And yes, you just happened to hit using git at a time when there were PHP upgrades to acquire and database config changes as well, so that did make it more difficult to sort out .. do at appropriate versions of the 'moodle march', etc..
Where ever possible, think in terms of server to server ... not download upload.
While requiring teachers to begin a new every year might cause some to review what worked and what didn't thus re-design their courses, others, may see that as just work and they'll do what they are allowed to do .. example: teacher knowing the future process, creates a backup and when the new server is up, they restore the backup. Been there ... tired that ... version 1.9 backups to 2.2.highest worked for the most part but ....
Then again, if you work your tail off and restore no user backups of teacher courses for them, more power to ya ... still might have to hold some sessions to show them what's new. Will teachers learn the new system as well?
Servers ... one could use virtual apaches on a beefy box ... prodmoodle.domain sits on same physical/or virtual server as development.domain. I find that handy ... one can setup a 'universal file system repo' that's seen by both servers so one doesn't have to do download only to turn around and upload anything. One's tweaks to PHP and DB server apply to both sites. One would need enough space to handle the two moodledata dirs. However, one could use the dev server to explore the use of a dedicated DB server ... or NFS (other) for not all but the largest dir's of moodledata.
The catch 22 would be like the last few versions of Moodle - 3.0.highest -> ... PHP to 7.0 or 7.1 ... DB to different character set/collation ... would mean can't have your dev and prod too far apart version wise. But then again, one probably shouldn't be running a 3.0 any more .. no fixes for code nor security.
There's a college on the west coast ... they use the latest version of Moodle every year as their main site ... currently active ... host names are like; lms2014.tld, lms2015,tld, lms2016.tld, etc. etc. So when their new academic year begins in 2018 they will be using whatever the highest version of Moodle is at that time.
Dunno if this response is an answer for you or not - probably not all of it ... just more food for thought! ;)
'spirit of sharing', Ken