If they don't want to be stuck on a team, don't take the deal. Players take long term deals because its a guaranteed deal, and in the world of professional sports, where an injury can ruin your career tomorrow, that's important.
I think it's more so that a team won't be fucked for years to come by signing a one hit wonder to a 6 year - 50 million deal and can't move him.