Aki, in Japan school teachers are "supposed to" call their students "(family name)-san", BECAUSE that's how every person calls each other in Japan.
In Japan, the only people you call by first names or nicknames are small chilren, your close friends and your younger family. Even for close friends, we use a lot of "(family name) -san". It's just a "standard" way of calling people.
And since teachers are supposed to teach their students to behave like a proper society member, the minute they finish preschool, they are called by their last names plus the -san.
"-kun" is how you call "boys". You can use it to call boys up to college students, but you don't usually use this term to address male adults.
In reality however, a lot of older people call younger males by -kun, a lot of mannish teachers just call their students by family name without the -san or -kun, and a lot of teachers who prefer to creat a friendly tone call their students by their nicknames.
Often in English language classes, students are called by their first names probably because that's how it goes in English speaking countries. Bottom line is that students need to be taught about how they should behave in that culture along with how they should speak/read/write the language.
You can't come to Japan speaking Japanese and then suddenly calling everyone in first name basis, moreover without putting a -san at the end.