Rizwan may have been a hard-core non-emotional guy before coming to the Hooda family, but, living with the Hoodas for 4 years has changed him into this sensitive, and caring person, who is a far cry from being a terror-wrecking criminal. Also, when you have love in your heart, and that love is your driving force, no amount of hatred can make you kill someone else. Rizwan is a unique case in that, he lost the parents he really loved at an early age. But that love for his parents is what drives him in all his missions. And if you have understood loss of love, you will not be able to inflict that loss on anyone else either. Rizwan stops from killing innocents, because he understands this loss. He identifies with it and doesn't want some innocent civilian to also suffer the same fate as him. This is what drives him apart from his baba and gang. Those fellows are motivated by money and not by love, which is why for them killing people is not such a big deal. Rizwan may have been accomplice to the Captain's murder, because he may genuinely have believed that the Captain is responsible for the death of his parents/other innocent civilians from his country. This is what politicians do, kill each other on other sides of the border to protect their own. The moral ethics are blurred in what a person with duty does versus a vigilante does. So who's to judge?
Now, the vacuum in his heart is replaced with love for Preet and the Hooda family, and no matter how much Atif and Baba and gang try, Rizwan is not going to come back to them and that hatred. Love changes people irrevocably, from a place they can never retract and become hate-mongers. He is shown as a lousy terrorist, one who can put the mission in jeopardy to save innocents or his loved ones. He is never in on any plans, because atif knows Rizwan's heart is too gullible to be ok with blood of civilians. When it comes to Preet, Rizwan's duty goes out of the window and all that matters in that moment is her. He is always shown in conflict, not so much out of morality, but out of love. The love that his heart has felt, changed him, and now to think of killing people, seems out of the question. He is always questioning his duty and his love for this family. Somewhere, he wants to give it up and just settle in as Ishan, but the other side of him know that his identity as Rizwan will destroy this bubble he has grown to love and live in. Which is why he chooses to still go along with Atif, because everytime he tries to take a step forward to Preet, he is taken back in flashback to his parent's death and he feels guilty about letting it go. For a child who has grown up only wanting one thing in life, which is revenge for his parent's death, to forget about it, feels as guilty as it feels to betray Preet and the family. That is why he is always in two minds, one to love Preet and take a step towards her, and one where he has to take revenge for his parent's death.
This is what I love about the show, that they have shown that even a person who has lived in hatred for all his life, can change if he gets love and support. They have shown two sides of the same coin. A child who has been through trauma, can either become a terrorist if people condition him to, or the same man can blossom as a good human being if showered with love and support. All wounds can be healed by only love, revenge does not erase any memories or wounds, only love does.
This is why Rizwan is a lousy terrorist, one whose heart is bigger than he knows, and one that is filled with love, which disallows him to do anything against others. This is why, Preet will find it in her to forgive him one day, and know that she loved a good man, a man who was only the result of his situations, and she will know that she was responsible to turn him around from a life of hate and revenge and guilt. She made him human again and she will feel proud of it.