Then your client is heading for disaster. Moodle is a Learning Management System, NOT a Student Management System and should not be used as such. There are a number of SMS' around that can provide a good base for integration into Moodle, something I would really like to see btw, but they will have to, basically, be re-written to be integrated properly to provide adequate security and ensure maximum compatibility. Big job, for sure but I think a worthwhile one.
The functionality you are asking for is simple though, but not easily achievable. As long as you have the resources to throw at it to adapt every variation that students will come up with, then it can be done.
What I have thought about in the past is to use Categories, one Category to a Degree. The problem though is the crossover that often occurs between electives. Each Category has a group of core subjects that must be successfully completed for a degree to be awarded, but then what may be a core subject in one degree can also be an elective in another degree. How do you cope with that? You can't, not easily, anyway.
Versioning your courses is simple, the 2015 courses are duplicated and archived, backed up and stored, however you want to do it. Reset courses, empty of everything, except the course materials, quizzes, all resources, but no previously enrolled students or student data. Simple to achieve with a cron job, I suggest. That is if your client means this about "new versions". However, if they want revamped courses, every year, then again, as long as they have the resources to throw at it, it can be done.
I am assuming here that your comment "... keep track of the courses made by a student and compare it to a list..." means courses successfully completed by a student and completion tracking is enabled on all courses. Yes, a few settings in the Site Admin controls that.
The last bit, that you ask for an indicator of courses to be completed, yes, that can be done as part of each Student's Dashboard. Dashboard can display all courses the student is enrolled in, but over a 3+year time period that is likely to be an awfully long list, Also, changes to a student's pathway will render this list invalid, a failure in a subject may also alter the subject list if that topic is a pre-requisite for another subject.
Good luck explaining all this though.