Hi Simon,
I think you have a good point. But for some of us we really prefer that when we "assign" learners at the program or certification level, it will also automatically enroll them at the course level, for compliances and auditing purposes.
I think it would be great to have a site level setting for the site admins to be able to choose which way they want the system to behave.
Also, I would suggest to add a "timedue" (and maybe a "timeassigned" field for the table mdl_course_completions table. My $0.02...