When I first moved to London my housemates and I used to play a game while watching TV. As soon as a character appeared on screen, we had to shout out "goodie" or "baddie", making a snap decision about the character's destiny based only on their first appearance. Overtime we developed schemas and rules (in TV-land, moustaches are usually a sure sign of badness) as well as developing a separate "expendable" category for those we didn't expect to make it to the end of the show or film.
We used to delight in bemoaning the lack of proper goodies or baddies, enjoying the let down of appropriate moral complexity in characters. Of course, the best heroes are deeply flawed, this makes them human and gives them the potential to be heroic. Likewise, few villains are devoid of any redeeming features. We know this, yet still often wish it wasn't so.
Part of us wants our heroes to remain perfect, preserved on the pedestals where we place them. This gives us hope, something true to believe in. And we want our villains to to remain bad, rotten to the core. There's always a disappointing sense of loss when the bad guys redeem themselves. We'd rather they stayed bad, ideally meeting with ghastly sticky ends and recognising the error of their ways only when it's too late. We enjoy having something to hate because it makes us feel better about being imperfect ourselves.
We don't like it when our heroes start fraternising with their nemeses apparent. It upsets our sense of world order and it tarnishes our image of perfection. But really, aren't the true heroes those that help the baddies to become good?