It sounds as though the guy deserved it. This kid's action was very rude and anti-social, and went beyond a mere verbal tantrum. How he deals with his kid is legally his business, but he at least has a duty to apologise for his kid spitting on someone. I probably wouldn't have punched the guy (just me personally), but I would have made him apologise.
I'd have spit back on the kid.
You have to understand, the sucker punch is the coward's tool, or the bully's tool. It's essentially getting a real quick an powerful blow in, while the other guy (read: victim) has no idea there is going to be a fight. You can sucker punch anyone, there's no real trick to it. It just takes a low-life scumbag to do it.