I feel it is a combination of being wedded to the "Yield Management" system of writing as much cash out of each customer as you can in the fare itself, and the fact that to match the lowest fares available, the airlines lose their shirts so they tack all these fees on to try and make a loss-leader fare profitable.
Even if they kept the whole swath of fare buckets and bases, if a fare actually breaks-even on the CASM, then the change fee should be a heck of a lot less (say $25) to cover the cost of doing the change. And if a fare actually returns a profit, then you should be allowed one or more "free" changes (within reason).
When airlines nail you with a $100-200 change fee on a $500 cheapo fare and on a mid-level $1500 fare, that is not right. By only allowing the top-end $2500 fare to be "change fee free", you just encourage people to do anything they can to book the $500 fare, since there is no incentive to book the $1500 one.