A counter perspective to this: what is a company? Is it not a group of people organized with a central purpose? So to discourage or ban other forms of organizing that may overlap this organization is actually the compromise of principles in this case. A union is just another group of people making an agreement together. The difference is, the company is organized by, and empowers, the person at the top. The union is organized by, and empowers, the workers. I don't see how they're different or how it can be legal or ethical to silence one type of group. As to what particular actions either group can legally or ethically demand of its members, that's where the real discussion begins.
Edit to elaborate:
I'd go so far as to say that companies getting larger or merging is a form of collusion. Say you have 10 small companies that each need one programmer. They are in competition. They each have to pay a fair wage in hopes of snagging you. Say they all merge. Sure, there's a global marketplace for the hotshot programmers still, but they have drastically reduced the local competition. If they're still hiring 10 programmers, they have much more power now because there are 9 fewer alternatives to consider, both for bargaining power and for information about the market.
The solution to this, as companies get to, say, Amazon or Google size, is one of two things. You can have government regulation, like the antitrust suits or minimum wage laws, or you can have the workers do their own form of collusion by forming unions for collective bargaining. Of the two, the latter is much more libertarian in spirit.