Loved your post.. I think the problem is Rohit is a real person and real people are not all the time very idealistic or good sometimes.. real people do hurt the people they love the most despite knowing they have no fault in it.. We all have something which triggers our anger.. Like for Rohit it has always been Raima.. For good or bad there's a part inside him which blames himself for everything which happened with Raima.. It hurts him very much.. So whenever it is about Raima he in order to lessen his anger.. his suffocation.. He removes his anger either on himself or the people close to him.. Because he wants to justify himself...prove to himself that he is not guilty of forgetting her birthday.. So he blamed Sona to justify himself.. Though that doesn't make him good but that doesn't make him bad either.. Because whenever it is about Raima he stops thinking rationally like the last he got drunk in heavy rains despite him being a person following all rules and regulations.. I am sure he would realise his fault and apologise to Sona after he starts thinking rationally or after his anger cools down..