He had to be unstable to take that role.
I am not all that sure "actors" should consider the morality of the role they play in a film. If that were the case, moral people could not play the role of a murderer, adulterer, thief, drunken anti-semite or politician.
Why? He was brilliant in that role. I thought he deserved the Oscar for it. If it had not been for the movie Crash being out the same year, Brokeback Mountain should have taken the Oscar for best film as well. Amazing piece of film making. Ang Lee got some very good performances out of his actors. It's one of the better films I've seen in the past ten years.