The limit_privileges_to_course_section parameter on the enrollment API used to apply to teacher and TA enrollments only, but we've found it now applies to student enrollments as well. As described in the API: "Section-limited students will not see any users (including teachers and TAs) not enrolled in their sections." It has to be applied to each enrollment rather than the section or cross-listing as a whole, but if you're bulk uploading or looping through enrollments in a script, that should be easy enough to do.
In our current workflow, teachers select courses to cross-list from a list of courses they're teaching in a particular semester. That list is displayed on a web form that's generated dynamically after the teacher logs in. I'm sure you could write a script in Google Apps to cross-list courses once the form submitted, but I'm not sure if Google forms can be generated dynamically like that.