The market for NBA free agents is not a free market. It has a few important restrictions that make it a little socialist in nature. The most important ones are the salary cap, the luxury tax, and the maximum contract size. Because of these restrictions, there is almost no benefit for an NBA manager in signing free agents to fair market value, unless the contract is small or the marginal benefit of the player's wins produced is large (the proverbial "final piece" for a championship). The salary cap imposes large opportunity costs on every salary that an NBA club pays.
Let's start with the fact that, by definition, a team where 100% of the players were paid on "fair" contracts should be expected to win 41 games, since the salary cap loosely forces each team to spend the same amount. Now, it's true that you can overspend to get into the luxury tax. BUT, if you are overspending on "fair" contracts, then again, by definition, each marginal contract you add can only improve your team logarithmically, not expenonentially. This is because you can only play 5 players at a time. Number 12 on your depth chart won't make a big difference no matter how much money you spend.
The logical consequence of this is that, in order to win, you must have some unfair contracts. In other words, your team has to find a way to spend less money per win than the other teams. This is generally true in most markets, not just the NBA; all companies strive to find the best workers they can, but very few firms employ a strategy that sounds like "well, we will just pay them more than anybody else, and get the best workers that way!"
There are several reasons why teams end up signing too many contracts that are "fair" -- or worse (Amare Stoudemire's contract is horribly unfair -- for the Knicks).
Teams overpay for youth
Consider Gordon Hayward. He's a fine player. In all likelihood, and he'll probably get a little better (he's 24, and players tend to peak around 26). He's versatile, shoots well (for argument's sake, let's consider last season an outlier), and does lots of things off the ball that produce wins. He's a lot like Chandler Parsons, another fine player. Still...
I really like Gordon Hayward, but maxing him feels kind of like paying $45k for a loaded Toyota Avalon. Good, sensible car, but...*damn*— Frank Madden (@brewhoop) July 9, 2014
Gordon Hayward has a replacable skill set. There are guys like Mike Miller, Ray Allen, Shane Battier, Matt Barnes, etc, etc, around every year who will do this job about as effectively, and at a fraction of the price. Now, those guys are old. Not really reliable on more than a one or two-year deal. But the league keeps pumping out players like this. Eventually, Kyle Korver, Danny Green, JJ Reddick and Wes Matthews will all get older and come at cheaper prices. These types of players have playing styles with a lot of longevity, because they are predicated on reading the floor, shooting and passing well rather than just athleticism.
You may also say that those old, underpriced guys usually only sign with contenders. That may be true. But if the team isn't a contender, then why is it paying a max salary to a player like this in the first place? I agree that this is probably worth it for a team that already has 50 wins in salary on the books and is trying to move to 58 with a guy like Parsons instead of 55 with a replacement-level SF. But are 2-3 extra wins produced worth the extra $8-10 million a year that a max salary costs for the Utah Jazz?
Consider that a couple of years ago, Houston was happy to recycle Chase Budinger with Chandler Parsons (before Bud's knee injuries, they were pretty similar players). The Rockets were in a different place then; they'll probably pay Parsons now because those extra 2-3 wins matter a lot.
Teams overpay for older players through lengthy contracts
Consider Chris Bosh and Amare Stoudemire. They are entirely different types of players, but in 2009-10, Amare produced about the same number of wins as Chris Bosh did in 2013-14. That is, their impact on the bottom line was similar. Another similarity between 2010 Amare and 2014 Chris Bosh is that both are/were at the end of their prime. Chris Bosh is far from a has-been -- now. At 34, he won't be the same player. It's hard to say how fast a player will decline after 30, but he will decline. Father Time doesn't always land a knockout in the early rounds, but he always wins the bout.
Bosh is not worth a maximum 4-year contract because his maximum is a "legacy" max, and because he is too old. Compare the $20 million that Bosh can earn to the $17m or so that Kevin Love will demand next year, and consider that four years is a long time for a player in his thirties. Even if we all get together and put aside our differences about how Miami's system affected his numbers, that you think WP48 doesn't capture defense, yadda yadda yadda, in the end, Bosh will be 34 years old and making $26 million. That's probably going to be a terrible deal.
The league's history is full of guys who got lengthy max-contracts at the end of their primes, and were horrible values at the end of those contracts: Rashard Lewis, Amare Stoudemire, Shaquille O'Neal, Kobe Bryant (inexplicably extended two further years!!), Carlos Boozer, Joe Johnson, Gerald Wallace, Elton Brand, and on and on. Many of those players may have been worth thier salaries in the first years of their contracts, but they were all overpaid by the end.
Teams Fall Into the Sunk Cost Fallacy
Over and over again, teams are afraid to lose their players "for nothing". Often, this results in them overpaying for decent players who are no longer on rookie contracts. This leads to scenarios where Brook Lopez earns the maximum despite not being anywhere near a top-25 player.
More subtly, it leads to teams exercising the options on their first-round picks, even if those picks were busts. Minnesota paid Wes Johnson for four years, even though they had team options and could have just let him go (later, they ended up bribing Phoenix with an additional pick to take him). New Orleans has a team option for 2015/16 on Austin Rivers. I wonder if they will drop him or exercise that option?
Sometimes, getting nothing in return for a player is....just fine.
Teams Worry Too Much About Having a Full Roster
NBA Teams have a salary floor. Furthermore, they have 15 roster spots. But there is no need to spend the money unless you have to. Philadelphia spent the vast majority of the 2013/14 season under the salary floor. Much was made of the fact that they opened the season with quite a few roster spots opened.
Unsurprisingly, Sam Hinkie had plenty of opportunity to take on salary late in the season by absorbing contracts like that of Danny Granger. In another shocker, the 76ers managed to field a full team in all 82 games despite starting the season with only 12 players or so. Along the way, I am guessing that Philadelphia's owner made lots of money.
The truth of the matter is that roster spots 12-15 do not have heavy impact on a team's regular season win total (either positively or negatively), and spots 10-15 have no effect at all during the playoffs. Teams should strive to keep the salries of these roster spots as cheap as possible. Furthermore, their best use is on young players who might develop into contributors later, on unfair contracts. Guys like Hollis Thompson, Chandler Parsons, and Lance Stephenson come to mind.
Players like Rashard Lewis, Jason Collins, Shannon Brown, Antoine Jamison, and (insert old player that won't get minutes here)? They are a waste of both money and space on most rosters.
Teams...well, Teams Don't Evaluate Talent Well
There isn't a fix for this, of course. By definition, about half the teams are below the average NBA teams' level when it comes to evaluating NBA talent. Our data leads us to believe that there are about four or five GMs that seem to be significantly and consistently outperforming the others at picking the best win producers, and a couple that look very much like they have figured out a secret that no one else in the league has caught on to. Conversely, there are four or five GMs that consistently fail at picking win producers, and one or two that look like they simply have no business being in the job. This is, again, pretty consistent with a bell curve. If you believe that talent evaluation is a skill, you would expect NBA GMs to fall on a bell curve.
Given the above, it isn't surprising to me at all that Orlando seems to have broken pretty much all of these rules by paying 31-year old Channing Frye $32 million for 4 years.