The thing is, if their policy is that they exclude students when they punch, and they made an exception in this case, it means that in fact the policy is that students are allowed to punch each other as long as the headteacher deems the provocation to have been serious enough.
This then requires the level of provocation to be judged every time to ascertain whether or not it was extreme, from the point of view of the school as outsiders.
How about another child that calls a child "four eyes" because he wears glasses. That might be considered provocative but is it extreme? Not as bad as the OP's son's "friend" but what if it was the 25th insult that week? What if the boy in question had never said anything unkind, but said this for the first time under his breath, and it happened to be the 25th comment the other had heard? Our boy punches him in the face but declares he was provoked. Not necessarily just by him, but provoked nonetheless. And if it was repeated you could say it was extreme as it built up his anger. So if you decided that he was provoked and therefore should not be punished you would then be in a position whereby the other parent tells you they have spent an evening down at A and E with their child and his broken nose, and asking you why a "violent bulky" is allowed in school. No no, you respond, in fact your son made a comment which was provocative. "Four eyes? Under his breath? Once?"
How about the cuss "yer mum!" Said to most boys it generates an angry response. What if that boy's mum was very ill or had died, but the aggressor didn't know. He shouts it in an argument and the boy loses his temper and punches him. He says he was provoked. But the boy saying "yer mum!" didn't know that what he was saying would be received so badly because he wasn't aware of the history. It's extreme provocation from the point of view of the child hearing it, but not as intentional. Or how about he did know, but he was lying?
How about the boy who comes into school after 3 hours' sleep, his parents rowing all night and a baby screaming. He's missed his bus, he's late, he's been told he has a breaktime detention and someone he doesn't like mouths at him to fuck off. He's in a foul temper so he lashes out. He says he was also seriously provoked. His mood was terrible so he felt it far more than usual, but he feels the provocation was huge and it was not his fault he had 3 hours' sleep. The attacked child's parents have to be called to take him home because he now has a nosebleed that won't stop. They insist that the "marauding bully" is put in a different class to their son. They say their son was just reading something to himself and never mouthed anything to anyone. They know their child best, they insist, and he never swears.
Now imagine you're 12. You hear people whispering about you, they are sniggering and giggling about you and you feel more and more upset and embarrassed. You hear a boy really falling about laughing and you punch him. You could argue that that was also extremely provocative - a whole group being nasty and humiliating you.
In all of these scenarios it could be argued that the child doing the punching was provoked. Some children for whatever reason may feel a comment more than others. A school has to have some lines over which they make a black and white rule, otherwise their entire day is spent dealing with shades of grey over situations rather than their core purpose - teaching and learning. If they believe that kids should never deal with situations with violence then their discipline code has to reflect this belief.
I have known kids excluded for a day for punching, who genuinely couldn't give a monkeys - parents probably teach them to fight physically whenever they feel wronged.
And I have known kids who are utterly mortified by themselves for having punched, for whom really no punishment is necessary but who accept nonetheless that the school has to respond, and take the punishment.
A school is not a court and teachers aren't police. They have a duty of care and a duty to discipline where necessary. They don't have to prove beyond reasonable doubt; they have to show that on the balance of probabilities it is more probable than improbable.
Schools do their best to accommodate a whole spectrum of moral compasses. It is not as easy as thinking that OP's son should be let off totally for these reasons, although it is totally understandable, given the perspective that we have here.