I am not advocating against free agency. Players like Melo are the ones trying to bypass free agency completely. Melo could become a free agent and sign with NY, true. But under the current system he'd have to take less money than he could get from Denver. So instead he is gaming the system to get more money and still go to the team he wants. He's not doing it to be kind to Denver and help them get something.
It sets a bad precedent because there's supposed to be a "reward" in terms of more money for a star staying with their team. I admit, my thinking is old school in that I like when the star players spend most of their careers with one team (or if they do leave, it's in a star-for-star trade). And I like that the NBA tried to give an incentive to stars for doing so. If they still want to leave their team in free agency, then fine, but there should be a disincentive (in terms of taking less money and less years) to do so.
As for the argument that it's better for Denver to at least get something instead of Melo just leaving for nothing in free agency... the team is still handcuffed by being forced to deal with the team that Melo wants to go to. They can't shop around and try to get best value for their star player. Yes, they do get something instead of nothing. But if Melo had to play by the rules and couldn't force a trade, he might actually decide to stay with Denver for more money. Who knows? I seem to remember Carlos Boozer being adamant that he was going to opt out of his contract with Utah a few years ago, but when it came time to do so, no one was offering more in free agency than he could get from taking his player option. So he took it and stayed with Utah for another year, despite what he was claiming he'd do.
The Melo situation is unique in that the team Melo wants to go to could sign him in free agency anyway. But what about when players start demanding to be traded to teams that are already over the cap? Teams that wouldn't be able to sign them as free agents? Let's say Melo does go to NY and then next year Dwight Howard decides he wants to go there too. NY wouldn't have the cap space to sign him, but Dwight can still try to force a trade there by threatening to leave in free agency. That shouldn't be allowed.
You say it's not blackmail but you also admit that really the only thing the GM can do is give in and trade the star, because they pretty much have to try to get something in return. I think there should be some form of compensation to teams if they lose players in free agency - perhaps a draft pick from the team that signs their player, or some sort of salary cap exception to allow them to sign someone themselves. I also think that players agreeing to a sign and trade should not be able to get the max contract in the deal. They should only get what they would have gotten if they had signed with the new team in free agency.