We create a course shell for all courses listed in Banner. This was the process prior to my on-boarding. I would say the reason is that it's easier to write a batch script that creates all courses once instead of manually creating them as instructors request them? We make them unavailable by default. It's up to the instructors to make them available if they choose to use the LMS.
I still have to manually merge some courses when instructors make that request. That takes up a bit of my time prior to the semester start. Another plus to creating the shells is when when we use Enterprise Surveys. We're deploying the end of course surveys through Blackboard. Having the shells created allows us to select the courses to deploy to.
One possible issue is that we may have course shells created but they end up getting cancelled in registration. We end up having dead shells. This can skew the data if you're trying to figure out how many courses are actually being used live. We just instituted a new script where cancelled courses in Banner disables the courses in Blackboard. That should help.