Clearly it's acceptable for kids to wear shirts in the public schools that have political and social messages.
At the school where I coach, it's impossible to go ten feet without seeing several students wearing "Obama", "Change", or "Gay pride" t-shirts.
But what happens when the t-shirt doesn't reflect left-wing ideology? Well... it gets banned.
So goes the story of a 7th grade girl in Merced, California. On "National Pro-Life T-Shirt Day" in April of last year she wore... this pro-life t-shirt:

According to the family's legal complaint, the school principal and assistant principal ordered the girl to remove the shirt and confiscated it for the remainder of the school day. She was ordered to never wear the shirt to school again.
School officials say they ordered the girl to remove the shirt because it constituted "inappropriate subject matter" in violation of the school's dress code.
Every year, schools across the country participate in the National Day of Silence to promote gay rights. If that is allowed, why can't a pro-life 12-year-old girl express her social views at school?
Are our public schools about free speech? Or only free left-wing speech?
- This is why I think all schools should adopt a strict uniform policy by the way.