I know how you feel about this. My youngest son is named Anthony Joseph. I thought long and hard about that, and it took me a good while to come up with it. Less than 12 hours after he was born, my obstetrician walked into the hospital room as I was holding him and just happily referred to him as A.J. My husband and the grandparents were there, and he became A.J. from that moment on, no matter what I said. Today he's 18 years old, 6'4" tall, and usually needs a shave. I think "A.J." sounds a bit juvenile, but he likes it. He also likes Anthony, and I call him that about 50% of the time. He does prefer to use Anthony for important events, and will be introduced at his Eagle court of honor and at his graduation ceremony as Anthony.
I guess I can't complain too much. I was born into a family where most of us had nicknames before we were even born! In fact, we had several and rarely heard our full names unless we were in trouble. In contrast, my husband's family would never consider nicknames. Everyone is called by their full names, even using middle names, as well. When we are at my mother-in-law's, my husband Chuck, becomes Charles Patrick again. He prefers Chuck, which he picked up in grade school. But Charles Patrick is the name that makes him feel part of his family. My name is Loretta, but I much prefer L.. So when I was in school, teachers always called me Loretta on the first day of school. I really hated it, and my mom taught me how to politely say to the teacher, "I prefer to be called, L.." I think if your son would prefer to be called by his full name, give him the words and support to ask the teacher to do so. And you can mention it to her, as well.
As he goes through life, no doubt he'll pick up some interesting nicknames along the way. Boys especially seem to like to hang names on each other. I'm a boy scout leader, and the boys use the names a sign of belonging and friendship. In our scout troop, the youngest boys really look forward to the day when an older boy calls him by a special nickname. We have an 11 year old who just joined, and he knows how to play the bugle. He so impressed all of the older boys, and they quickly decided their young bugler would be known as "Music Man". That evolved to just Music and then M&M. The kids seem to really enjoy it, and it becomes part of the fond memories that they will cherish from childhood. I think you should let your son set the standard for whether or not he uses a nickname outside of the family.