I mostly just want to slap Mary. Well, maybe I want to slap John, too - not for forgiving her past, but for putting up with what she did to Sherlock. I understand why Sherlock can forgive her; it's easier when it's one self who's been hurt, but what if Mary had put a bullet in John's chest? Would Sherlock forgive her then? I think not! Sherlock may defend Mary, saying that she tried not to kill him, but simply incapacitate him - this may be logical, clinical, and if carried out to perfection, maybe it should work out perfectly - but the point still is that she did it! She did it to Sherlock. Now, Sherlock can say all he likes about the importance of logic over love, but where is the logic in his own actions towards the end? He killed a man out of love for Mary and John - out of love for someone who had nearly killed him! He can say all he wants about it, but he has proven once and for all that love is a powerful motivator. Who does he love the most? John. Ergo; if Mary had shot at John, regardless her intentions, would he really have just said, "Good shot, nice surgery"? If so, he is a darker person than I care to think of. It actually deeply disturbs me to think of Sherlock that way.
All this talk of love and yet we're talking about almost an entire cast of sociopaths.....?