I think thats fine if you are only storing the role and thats as far as you go with it, so I'm ok with this. If you are going to store additional info regarding the persons role as a student then the student table makes sense.
Yup, I agree (my original post asks whether they are planning on tracking extra student-specific data).
If you need to track data that is applicable across all roles (e.g. a RoleStarted/RoleEnded date) then those columns could be added to the many-to-many link table without adding a specific table for each role.
However, if in your business model you are tracking attributes specific to students, professors, employees, etc., then a table to organize these attributes makes sense.