This problem is as obvious as the solution is unclear.
There is absolutely no reason for developers to stop scraping together their best content and dumping it into their cash shops. Clearly, the initial burst of money they make doing it outweighs their drop in players.
I like to pretend I'm going to make some kind of moral stand when I start a game with a cash shop. It doesn't take long until I'm justifying $5 on that sick tiger mount -- $5 I could have just spent somewhere else. $5 I could have spent on something more meaningful.