How about we just accept that people dislike Lebron, Wade, and the Heat not because of jealousy or resentment, but because of the douchey aura around them. And what does Lebron "doing more good in this world than anyone else I know" have anything to do with rooting for/against a player? So we're not allowed to root against a player if they have a charity? Let's keep this in perspective and remember this is about sports, not if they're angels off the court. Otherwise let's just make a rule that we should love and adore EVERY NBA player (and should never be allowed to boo them) as I'm sure all of them contribute to charity one way or another. People like having heroes and villains in sports. The perspective to keep here is that it's not personal (for the vast majority anyway), it's just sports.
As to your point of Lebron having every right to leave Cleveland, of course he did. Conversely, people (not just in Cleveland) have every right to root against him for the way he left.