Not sure about question 1 but there are ways around that if it does not work that way, which I suspect it does not. You can use the autogroup plugin to automatically group teachers and students according to a profile field.
Question 2 - the short answer is yes. You set up your course to separate groups but you also need to remove the permission to see all groups from your teacher role (I recommend creating a new role based on the teacher role and then removing it from the new role so as not to mess with default roles). That will keep teachers and students separated but they will have access to all content unless you specifically restrict an activity from a certain group.