I've been hard on this game, very hard, but I have to disagree with the OP. Then I realized his/her mistake. It's not that their relationship is poorly written, it's not. But kind of like V and Jackie's relationship, it was poorly directed and a lot was cut and shortened that would have made the relationship work a lot better.
As I see it, when Keanu wanted more lines, instead of trying to figure out how to do it, and compromising with him, they bowed to his wishes and crammed his extra lines in without much thought to the story. This created the issues with Johnny's story seeming at time, not to make much sense. One minutes he's a complete asshole, the next he's your buddy, and the next he's an asshole again, without any real reason.
It's not that he's poorly written, he's not. You can see true brilliance behind his lines and his story. But they just gave Keanu extra lines, he read them as they directed him too, and they just shoved them into the story... somewhere.
The ending is again a product of the bad direction and lack of time. It's why certain endings are way more fleshed out then other endings. They just realized they wanted to get the game out the door by the end of the year, and decided to just finish where the game was, regardless of completeness.
It makes it seem poorly written, but really its just the managers and directors worried more about money then about the game and the players and their employees and screwing it up. Every problem in the game can be led back to this. Great developers, great voice actors, great story... poor execution by the directors and managers.