M.O.
I am a swim instructor. It's quite possible at your son's first swim class that he swallowed a lot of water. That may have been why he vomited, the chemicals may have bothered his stomach. However, I'd bet he was exhausted, got worked up and then threw up. Learning to swim can be exhausting. Esp if you're scared and swallowing water.
As a mother I'd tell you his colds, sore throats, etc. are more likely due to having an immature immune system. MOST preschool aged children are first experiencing school (lots of other kids for a prolonged period of time), bad hygiene skills (picking nose, sucking fingers, coughing and sneezing all over, not good at hand washing), AND have a system that has been unexposed to a lot of the germs/virsuses out there so their bodies don't yet know how to fight them off.
Welcome to having a preschooler!
Now is the time to emphasize HAND WASHING, covering your cough/sneeze, keeping hands/fingers away from your face, changing clothes when you get home from school, staying off the floor/keeping shoes in the garage, etc.
It sounds like your son is a "normal" 3 yr old. Don't blame swimming.