An excellent suggestion. Unions have become havens for incompetents and conscientious workers get tarred with the same brush. If unions negotiated contracts based on the reality that some of their members are goldbricks, slugabeds, and slackers, and that nobody is served by championing such people, then I think they could establish a more co-operative working relationship with management, instead of the adversarial one that exists now.
If they negotiated floating rates of compensation based on productivity, and allowed the corporation to fire anyone who was more than 1 standard deviation below the mean, the company probably wouldn't even try to get rid of them.