Especially in the case of Mahrez recently. Denying him the chance to move to the top of his profession after he's helped them perform a miracle and win the league, and they'd also make a 15,000% markup on him, was a bit shitty to be honest. He'll never reach the Champions League or probably win a trophy again for Leicester and they'll probably never get another offer of £60m for him.
But you cant have it both ways, he was happy to sign a 4/5 year contract, probably tripling his wages. If his form dipped the club would be forced to pay that, or if he got injured and was out for a season. I personally would have let Mahrez go as it wasnt the first occasion but it needs to be both ways