I have just got the Upload enrolment methods plugin approved and published in the Moodle plugins database. It allows administrators add the "Course meta link" and "Cohort sync" enrolment methods to a range of courses from a CSV file. They can also delete, enable or disable existing enrolment methods in a course.
The idea is that it can be used in conjunction with other plugins like Enrol by user profile fields and Autoenrol cohort which enrol students into courses or cohorts based on their user profile fields. These fields are often populated automatically from an external Student Information System like Banner. So a cohort of "Year 1 Mechanical Engineers" might be created in Moodle using Autoenrol cohort, and then this plugin can be used to efficiently add the "Cohort sync" enrolment method to the complete set of mandatory/required modules for this student cohort.
Once courses are identified as belonging to a particular programme of study and year group, you don't have to add and delete the enrolment methods every year/semester, instead you can add the methods but keep them disabled, and get the Teacher/Lecturer to enable the method in their course for just those student cohorts assigned to them. (In many cases, a specified module (e.g. Engineering Maths 1) might be taken by students in more than one programme of study, and administrators won't know beforehand what particular instance of a Moodle course each student cohort.)
On an existing Moodle site with thousands of courses, there is a significant upfront effort in relating each course to the programmes, years and modes of study. Each study module should have a unique ID, probably defined in a Curriculum Management application. You can insert the module ID into the Moodle course idnumber field (along with something to make it unique, such as the course number, e.g. "ENMA H1002 (1234)"). Use the Configurable Reports plugin to generate the list of course shortnames, ids and categories as an Excel file, and then use the Excel VLOOKUP function to associate courses and module IDs. Once this is done, you can use the Moodle course upload feature to import the ID numbers into each course.
You also need to correlate programmes and years of study with module IDs, which can be done by extracting the data from your Curriculum Management application (easy), or by scraping the output data from a website (harder).
Finally, you can use all of the above data to generate the CSV file that this plugin will accept, correlating a course ID with a student cohort engaged in a particular programme of study in a particular year. I think Excel and VLOOKUP are essential to do this.