Its a very fine line to walk. Raimi did it in Spider-Man 2. He made John Jameson the exact opposite of Flash Thompson. The thing is, he didn't constantly have the spot light on him. Even though people like Richard and John are likable, they are for story telling purposes antagonists. If you focus too much on Richard (as Singer did) and see that he is just such a perfect person, you begin to question who you are rooting for. In the end, a lot of people ended up liking Richard more than Big Blue, which turns Supes into the antagonist of Richard (who from their perspective became the protagnist). If you want to do the likable competition type thing...you have to keep the person in the background. You can't let the audience grow too attached to them, and that is exactly what Singer did.