The two main reasons for creating class sites are
Typically these sites all get created using the same template, but if that's too limiting for you there's no reason why they shouldn't use different templates.
Permissions on the sites can be set on an individual user basis on by creating class based SharePoint or Active Directory groups and assigning the permissions to the groups.
In a typical MLG/SLK set up this leads to creating a site per class/teaching group in the school. Although this creates a large number of sites there are advantages
Another factor in the organisation is that the learning resources do not have to be present in the class site. They do not even have to be present in a site accessible to the learners, so could, for instance be in a staff departmental site.
The most common set ups are
Typically all the sites are created in one parent site - the Classes site in MLG. You can certainly split them over different parent sites such as subject or year sites. This might be a particularly relevant solution if using option 3. With the automatic hiding of classes the users don't have permission on, this is more helpful for the teachers then the students in creating a hierarchy. It also breaks the My Classes web part as that only looks at the sites within one parent site. I am thinking of extending that though to look at multiple parent sites if there's a demand for it.
Other possible set ups which I have come across have been used to limit the number of sites created in a hosted situation where multiple schools are using the same platform.
In these cases you would definitely assign permissions on a group basis to enable class based assignment of resources.
For more information please email email@example.com.