(sorry, this turned into a longish meta!)
I think we’re meant to be confused and misdirected by this scene, lulled into a false belief that everything is ‘great’, and that Mary is forgiven. They want us to be surprised in s4 by the ‘sudden’ revelation that she worked for Moriarty. I’m not sure myself if the curious wording of the Christmas scene means that there is some secret plan that John and Sherlock have regarding Mary, or if John is simply giving himself some kind of loophole, because he knows he should forgive her (whether because of the baby, or because Sherlock told him so), but he doesn’t actually want to do it and he feels no forgiveness. But the wording is NOT accidental. Compare this scene with the one in TEH, in the train car (here’s a gifset). I think this is an entirely deliberate choice to never show us Mary asking for forgiveness and to show John NOT using the words ‘I forgive you’.
Look at the scene in the train car. We absolutely know by then, that John has actually forgiven Sherlock long before that scene. We see him shaving his mustache off, we see him oscillating on the pavement outside 221b before he gets kidnapped. He then actually comes to 221b after Sherlock saves him and even after he hears that Sherlock’s parents knew about the fake death, he still stays with Sherlock and helps him on a case (later he writes on his blog ‘I was hooked, he’s like a drug’, like, please). So the scene in the train car is there not to show us that Sherlock is forgiven, because we know that already, but to finally make them air their feelings, and probably to show us Sherlock begging for forgiveness and John explicitly granting it.
So now compare this to the Christmas ‘forgiveness’ scene. Look at the transcript. There is absolutely NOTHING in that scene that indicates forgiveness. And the scene is deliberately placed right after we see Sherlock collapsing in John’s arm in 221b (with John looking as if he’s going to have a panic attack)
and just before this shot of John looking murderous and Mary looking warily at him.
I can’t believe that this is a coincidence, we are supposed to be looking at the ‘forgiveness’ scene while dying Sherlock is still on our minds.
John is an awful liar, we knew that from ASiB, we knew that from TEH where Sherlock tells him that this was basically the reason he hadn’t contacted him after the fall. For me, the way he steels himself before the talk with Mary,
the way he’s looking at the pendrive
and the way he’s basically still pissed off at her even right before the scene (just listen to his ‘juuuuust come here’, he’s so done…)
and the way he deliberately tells her (and us) that the whole speech is carefully worded and rehearsed (“These are prepared words, Mary, I’ve chosen these words with care” notice his nervous laugh here)
– all this tells me that there must be something more going on, that he’s probably lying and the whole thing is prepared because he’s not a good liar. He carefully prepared a ‘forgiveness’ speech, that didn’t include the words ‘I forgive you’. Come on.
He says that the problems of her past are her business (sorry but to me ‘your business’ doesn’t really sound sympathetic, it’s sounds like ‘deal with it on your own’) and says that ‘problems of her future are his privilege’. At this point, even MARY doesn’t feel as if she’s being forgiven.
She’s still eyeing him, searching his face. So even she didn’t read his words as clear indication of forgiveness. Only after John (eyeing her and the pendrive suspiciously)
throws the pendrive into the fire, she starts to cry, knowing she’s off the hook. Also, I don’t know about you, but his face here looks suspiciously like his ‘captain Watson is going to murder you soon’ face
So basically the whole ‘forgiveness’ scene is not about John forgiving Mary, it’s about telling her that he didn’t read the pendrive. Which can well be complete bullshit. But of course that’s just IN MY READING. Clem has also talked about this here, here and here, I highly recommend reading this as well.