Baines cost £6m from Wigan.
... and Bily cost 9m. We could go back and forth for days quoting prices of one player back and forth but it doesn't prove anything. The bottom line is that there are probably hundreds of players which cost 6m (or less) who turned out to be not the best player in the world at their position. We've bought a few of them. It's like saying we should be more like Barca and just develop a shed-load of great players in our youth system for practically no cost. A lot easier said than done.
I said we'd have to be "very, very lucky" to spend that money and get better and that's true. Baines could have cost 600k or 6k -- doesn't matter. Unless you have a proven method to believe you have a good chance of unearthing a diamond then you are making a mistake selling that player.
Obviously if every time we spent 6m we found a Baines of course we should sell him. However if we're going to get one Bily and one Heitinga (whom I include as an example of a good but not great signing) then we shouldn't.
Plus I am talking about getting better. Baines cost 6m but he isn't better than Baines.
This "logic" of selling players in their prime is what keeps teams in the middle/bottom half of the table. You never have great players that way. Oh I better sell this guy because he only has his best years left and replace him with someone with potential who might be worse or might one day become as good as the guy I sold ... and then I'll immediately sell him as well. How is that progress? You can literally never improve that way. Spinning your wheels with a big risk of ruin where the best case scenario is stagnation.