I have a personal philosophy regarding free agency, and I'm curious to hear what people have to say about my line of logic.
The nature of free agency is that, for the most part, it's a straightforward bidding process. You get a player when you submit a larger bid for more money or for more years than any other team was willing to bid for that player's services.
Occasionally free agency works out great. The player outperforms expectations and provides an important ingredient helping the team to win. In a cap squeeze, such a player can become a valuable trade asset or you decide he's such an important part of the core of your team that you will not part with him. You're not "stuck" with the player.
More frequently, though, the bidding process caused you to bid more than what the player was actually worth. The expectations of the player are proportional to the financial commitment made by the team, but at the high end of free agency it's often impossible for a player to fulfill those lofty expectations. When the player actually starts playing for your team, everyone sees that you overpaid for him and the contract is considered to be "bad". The consequence of having a bad contract is that it's extremely difficult to move (see Rolston, Brian). Other teams weren't willing to pay the financial price that you paid when the player was a free agent - why would they want that player now that it's crystal clear that he is not worth the money he's being paid?
The problem is that bad contracts happen far more often than good contracts. Why might that happen? I believe that it's because when it comes to NHL players, every team has as much information as any other team. The analysis that John does for this site goes to show that NHL teams have tremendous statistical tools at their fingertips which can help them assess what a player is truly worth. They have as much video of the player as they could possibly want.
On the other hand, not every team has the same information on draft-eligible prospects as other teams. There are clearly teams that are considered to be superior in the draft. The data and video of these prospects is simply not as freely available as for NHL free agents. Thus, some teams are able to get better/more information in preparation for the draft than other teams are. You never, however, hear of a team that's "great at signing free agents", only of teams that are "great at drafting".
So if the teams have such great information on hand regarding established NHL players, why do they constantly overpay for free agents? I think it's because of the emotion involved when you believe that a certain free agent might be the last piece to your Stanley Cup puzzle. I think that belief that a Cup is within reach makes the GMs willing to pay an extra premium for that player. If ten teams have that belief each year but only one team actually wins the cup, it means a lot of GMs have paid extra money without earning that championship payday.
I think that big-ticket free agency is doomed to failure unless the player is for some reason willing to take a discount to play for your team. Free agency is a better bet for filling the lower ranks of your roster - where the proportion of suitors and players is decreased and the commitment time period is shorter.
The interesting thing about REALLY high-end free agents (like Kovalchuk) is that they know that huge contracts can cripple teams and make it difficult to assemble a winning team and so they tend to take less money than what they're actually worth. Players that signed early on in the cap era didn't actually fully understand this (lecavelier, spezza, ovechkin, crosby, malkin), but as time has passed, the superstars have realized they need to take less money in order to win (kane, toews, keith, backstrom, datsyuk, zetterberg). It should be noted that all of these players were re-signed by the team that drafted them, not acquired through free agency.
These days, the guys who sign 5 million dollar contracts are undoubtedly good players, but for each additional million dollars, you're likely to get a guy who provides much more value. A 5 mil player is expected to be a star, but probably doesn't make the All-Star game consistently (Plekanec, Martin). A 6 mil player is more like a superstar and a guy you can build your franchise around (Marleau). A 7 mil player should unequivocally be a franchise cornerstone (Kovalchuk), and an 8 mil player should be a Hart trophy candidate.
If a high-end player is asking for 7 mil when they are not a franchise cornerstone, that is a red flag in my book. It suggests to me that the player is less than fully committed to the team and to winning. They must know that they can't have their cake and eat it, too.