I think CBA agreements/benefits should only apply to union members. Don't pay the dues don't get the benefits. But the choice to join and pay or not should be up to each individual employee. Not forced.
Honestly, companies would rather not deal with unions. If this were the case I bet the non-union employees would get things the union employees didn't get, like higher pay. I'd gladly give up my union cherished pension for higher pay and higher 401k matching. This last round of CBA negotiations the union laser focused on keeping the pension, which they kept, but I believe they gave up a lot to do that. For instance, they have a cap on how much our insurance premiums can go up the first two years under our three year agreement, but no cap on the third year. Our CBA expires in February of 2018, but our premiums can go up an unlimited amount starting January of 2018. I've heard union members say that we can negotiate those premiums on our next contract but I think they're missing the fact that our employer and the insurance companies are going to set the 2018 rates before that contract is negotiated and we are not going to bring those rates back down from whatever the company sets going into 2018. That ship will have already sailed. We also took a payout in lieu of a raise for 2015 and our raises in 2016 and 2017 are 0.5% smaller than the raises on the previous contract. Since raises compound on all previous raises that would have been off the table for me, but it seemed the pension was the focus and not our pay.
Many employees have legitimate gripes regarding our union and are not members for that reason. Many would be happy if the union didn't exist. They don't just benefit from what the union negotiates, they are stuck with what the union negotiates, good or bad. If they feel like the bad outweighs the good then there's no reason they should be forced to pay into the union.
I'm a union member, btw. I've debated leaving the union, but since I'm sort of stuck with the union I'd rather have a strong union than a weak union.