The school did nothing wrong here. They just followed their published rules. If you want to "point" the finger for blame, point it at the parents.
Every kid comes home with a "Code of Conduct" policy manual in my school district. The parent(s) should have sat down with the kid(s) and go over the manual. So it should not be a surprise to a parent what is accepted or not.
Is this a gun issue? Nope. I fully agree with a zero tolerance policy when it comes to school violence (active or passive).