Very interesting article and comments: http://www.volokh.com/2013/10/13/may-employer-fire-employee-based-employees-reasonable-job-self-defense
Summary: yes, they can. So discretion in bearing arms is important to avoid being fired prior to needing to defend yourself. Of course, the legal right to fire an employee extends to unarmed self-defense also and starts looking like a rather unethical concept. On the other hand, I suspect the bias against self-defense stems from the ability of criminals in many states to sue if injured by agents of a corporation.