How is "the power to take someone's livelihood over their constitutionally protected speech" distinct from "freedom of association"? Is freedom of association a bad thing? Or do you just want to limit it with respect to firing? How about hiring? Is it ok not to hire people who have values I deplore?