James Joyner runs down the inherent tensions in sports between treating the players well, and having a good game:
Major League Baseball has had the same problem longer than the NBA, but nobody really noticed. In MLB, which unlike the NBA and NFL has no salary cap, owners can bid whatever they want for the best free agents. And only a handful of teams have the resources to pay the really big bucks. So, the best players tend to wind up going to the Yankees and the Red Sox, with the Cubs, Dodgers, White Sox, and a couple of others bidding for the rest.
But fans see the problem there as being tied to the owners, not the players. We all understand that, if offered a choice between $250 million for ten years with the Yankees or $75 million for five years with the local team, we'd be in pinstripes.
In the NBA, though, there's a soft salary cap. Every team has essentially the same amount of money to spend and the same max salary it can offer to superstars. Most players, then, would rather play in a world class city than in the hinterlands. Not only are the marketing opportunities much better there but the lifestyle choices available to an obscenely rich 26-year-old are simply more appealing. So, everyone pretty much wants to be in New York, Los Angeles, Boston, Dallas, Miami, and Chicago. And, preferably, with the Knicks or Lakers, not the Clippers or Nets.
The NFL is a much more tightly controlled cartel. Owners share most revenue 32 ways, ensuring competitive balance. And their salary cap is hard, so there's very little wiggle room, aside from creative use of signing bonuses. Plus, the union has given teams various "tags" to restrict free agency at the cost of paying very high salaries to those so designated.
And that's great, if you're a fan. I very much want to see teams be rewarded for smart drafting and to keep their best players around for the duration of their careers. That's how it was in the Good Old Days.
The problem with that is that it treats players like indentured servants. Sure, they're well compensated. But all the leagues have amateur drafts, wherein they bid on the services of young players coming out of college and high school. The players have very little leverage: They either go to the team that drafted them or they don't play. So, you might have spent your whole life in West Texas rooting for the Dallas Cowboys and be forced to migrate to Pittsburgh and play for the hated Steelers. Or, you might have grown up in Boston dreaming of playing for the Celtics but have to live out your hoop dreams playing for the Toronto Raptors.
Worse yet, you might buy a house in your new city and be traded like some unwanted MRE side dish to a new team in a new city. In some cases, two or three times in a single season!
If you're Baron Davis, you can be shipped from your hometown LA Clippers off to the purgatory of Cleveland, where even hometown boy Lebron James didn't want to live.
Free agency, in addition to allowing players to get paid what they're worth on the open market, allows them some say over where they and their family will live. The NFL takes that away from its superstars. That's good for the fans. But it's horribly unfair to the players.
I think this tension is at the heart of a lot of conservative and libertarian qualms about unions, exemplified by the difficulty with teachers' unions. Union boosters tend to view the conflict between management and labor as a straightforward argument about who gets what share of the profits. But there's also often a real conflict between productivity and what the workers want. I can easily sympathize with fifty year old dockworkers who don't want to be turfed out of high-paying jobs that they counted on. I can't sympathize with a union that fights to keep exactly as many jobs at exactly the same pay forever, even after the owners offer to pension off the displaced current workers at full pay. If unions had been doing this sort of thing in 1810, we'd all still be working in cotton mills and dying at 45.