Hi Martin
The reason for the category visibility not affecting the visibility of courses in the category is because the course visibility is being controlled with audience based visibility.
If you turn off audience based visibility then hiding the category will hide the courses in the category
I can't think of a way this can be done in bulk with audience based visibility turned on - each course needs to be hidden in the course and category management screen.
This sounds like it would be a good feature request to include a deselect/select all link here
regards