I think Oliver is bad at relationships, but after the island I think he is moves by the idea that he has to protect people. As I said many times before, I think Oliver had a very nice redemption arc until the middle of season two.
But you are wrong, because Oliver didn’t do anything to Tommy. Oliver was very clear to him that he wouldn’t tell Laurel about his feelings. Tommy decided she should know, and Laurel made her choice. She had a voice on everything, and Tommy couldn’t win her back after telling her about Oliver’s feelings, because at this point she realized her own feelings.
I also don’t think Oliver ran from Laurel after the quake. I think he just couldn’t deal with his guilt, because yes, it wasn’t only Laurel who blamed the Hood. Oliver thought he could do more, Oliver doubted himself.
But as I said, I think they lost Oliver’s journey the moment they made him date Sara, and the moment they decided it was ok for him to judge Moira for doing the same thing he was doing (lying to Thea about her father). After that, and even more in season three, for me they did a lot of terrible moves.
Oliver in season three was the most selfish we’ve seen him (very similar to his old self), he lied to people, he didn’t respect his team, he was a selfish asshole, being kind to him. Also, it’s very weird that he wanted to kill himself and after 20 minutes he was “happy”. This is not how you build a character. It’s insane.
So, I don’t think “Oliver sucks”. I think they had a great human being, and a great story, but the writting for this show is really bad, because they can’t plan two episodes ahead.
I love Oliver, the same way I love Laurel. But they made him a very disappointing character. And in my opinion they will do the same to Laurel in season four.