Of course they're not going to do it voluntarily. The reason the programmers don't want a la carte is to protect their revenue stream. The only way it'll happen is when the costs become so high that consumers finally say enough is enough. Just like with anything else. Obviously we are not at that point yet, but give it time. It might be two years or twenty years.
As has been discussed here before the best (from a consumer point of view) way would probably be to have the ability to pick from mini-bundles like all ESPN channels or all Scripps channels, etc. It makes no sense for millions of people to help pay for athletes' mega salaries when they don't care at all about sports. The sports channels are the poster child for this problem. Let the people who want the sports channels pay for them. I understand the argument of having everyone subsidize some type of programming, but no valid argument exists for this subsidy to apply to the sports channels.
If a la carte made sense from a financial perspective, it would be done. It's really that simple. People want unique content, good series, good movies, etc and that costs money. There are many losers that don't make it past pilot or after series one, yet those shows cost a lot of money to make.
I honestly think some people think every show is a hit and guaranteed. If that were the case, it would be much easier argument to make, but of course that isn't the case. Content creation costs a TON of money, fortunately or unfortunately, it is simply reality.
The sports option you are suggesting would be great, but I don't see that happening. They have tremendous leverage even if only 40% of the people are watching those channels. If a provider doesn't have ESPN, they are going to lose massive numbers of subscribers. Because of the leverage of ESPN, they are going to demand 85% to 90% penetration, so the mini-bundle idea is dead before it gets off the ground.