My company does it too. If there were a shooting situation at work, the company can be held liable. Its standard CYA. If I can't deal with it, I can work somewhere else.
Yep, liable for not protecting their employees while at the same time preventing them from having the means to defend themselves. Meanwhile anyone intent on evil doing isn't going to be bothered by some corporate policy, assuming they are even an employee.
The Court likely decided correctly based on current law. But laws can be changed and corporate policies can be both stupid and oppressive. This one is both.