The whole point of FA is to give players control over there careers just like any other profession. When it was pitched to the AFL it was sold as helping fringe players leave successful clubs for more opportunity, the reality of this is a long way from that and it's clear that is not happening.
What the solution is I am not so sure, but perhaps the clubs or an independent body need to rank a players worth in the draft, lets say with Buddy, he is worth a top 5 pick so only clubs who have the first 5 picks can bid for Buddy, unless Sydney were able to trade into the top 5 they would miss out on him, and Hawks would receive the top 5 pick of compo.
With Frawley, he is considered a pick 20-30 pick, so any club could get Frawley and Melbourne get that compensation pick. This way the player still gets to choose, but clubs are also compensated for there worth and also lose that pick.