There's a balance, if you couldn't control players, you wouldn't even have a minor league system, after three years most players are just becoming valuable, many struggle their first couple years.
So teams would reduce player development while burying players in the minors as long as possible to get the most value out of those three seasons.
The tradeoff now is you get the player dirt cheap while he develops (and you take the risk he's Franco, not Herrera), then pay more the next three years under arbitration.
Limiting the length of contracts, while strengthening the minimum payroll, would shift funds from underperformers on long-term deals to rising stars (since there would be more salary cap room).
One change could be to make players eligible for free agency after six years OR their 28th birthday, ensuring late bloomers would have a crack at one big pay day. I'd also eliminate compensation for free agents, instead maybe have a payment like we do to the Japanese league (as a % of the FA contract?).