This scene is so heartbreaking in so many ways. Because John, no matter for how long he’s known Sherlock, is supposed to be the only one who know who the detective really is while Lestrade who has been working with him for several years now, who said Sherlock was a great man but not a good man (yet at least), thinks Sherlock may have kept secret the identity of the killer (Mary) to protect someone. At first, you almost have the feeling he doesn’t really believe in his theory, his proposition is merely an investigation process : ask the good question, eliminate the options… he acts like the DI he is. But then you see John who genuily doesn’t think Sherlock would bother protect anything but himself, that he doesn’t are, and Lestrade looks uttlerly confused : John Watson, the only man Sherlock acts almost human with, his best friend, believes the detective cares for nothing and no one but himself.
Now remember that Lestrade was aware Sherlock was alive, he knows why Sherlock faked his death, that it was to protect his friends from Moriarty’s machination, and more especially John. Lestrade knows Sherlock has a heart and that he does care about people. A few people yes, but he cares anyways.
Meanwhile, John is convinced that Sherlock wouldn’t bother protecting anyone, not even his best best friend. He loves Sherlock, he told him several times, but he’s also so sure that the detective is above any feelings that he thinks he wouldn’t do anything for someone else than himself.
Because what John doesn’t know is that Sherlock has done so many things to keep John safe and make sure he was happy : he hid that taliban saber under his armchair to avoid any questions and furthre worries of the doctor after being attacked in his flat and said nothing when John sighed as he saw the scratch on the table, thinking Sherlock did while cutting something, accepted to play the role of a fake genius in order to make John dislike him and not mourn his death, he jumped off a roof for him, kept being dead for two years in order to destroy Moriarty’s network (don’t tell me Shrelock did this only to make the world a better place to live in, he did to keep John safe from any threat), has been tortured while doing it, he made John’s bachelor party to make sure it would be the best, he watched his best friend getting married, accepting that things will never be the same anymore between the two of them, he came back on doing drugs to preserve himself to thing about John and bother him in his new life (Sherlock’s a good actor, if he really did that only for the Magnussen case, he would’ve faked his addiction) and he got bloody shot by John’s wife right in the chest, and yet said nothing about it to keep the doctor away from being heartbroken about his wife shooting his best friend. Later on, as John got to know about this fact, he kept saying Mary did it to save his life.
And he never said any of this John. Ever. John has no idea all the things his friend did for him, while we know them, and Lestrade and Molly know a bit about it. Sherlock always thinks about John before himself (well, almost always) but John has no clue, until that moment where he sits in his armchair.
Indeed, his armchair had been removed sooner by Sherlock who couldn’t stand seeing it empty (and once again, John misunderstood it, thinking the dective didn’t miss him). So when he mechanically sat in, he stops for a moment, realising it wasn’t there before and it was probably a Sherlock’s message adressed to him.
But more than that, a part of John finally gets that Sherlock cares about him, because he kept secret (until that moment) Mary’s secret.
And this is why this scene is heartbreaking.