They are sold for lower prices because there is an oversupply of them. The rule is designed to have players who are not viewed as desirable by the managers and are sold for cheap to retire.
Nobody will pay 1M because there are cheaper similar players. There are cheaper similar players because there is no competition to buy them as they are in abundance, too many of them vs the number of teams capable of sustaining their salary.
Still, the economy model is flawed and needs a complete revamp, I mean from A to Z, salary calculations, attendances, league rewards, staff salaries, etc...
It won't happen and we will have to live with small fixes.