There have been several hypotheses about how Bannon came to be removed from the NSC. My hypothesis is that Jared Kushner was the one who got Trump to remove him. Here’s what I think happened:
Chairman of the Joint Chiefs of Staff Gen. Joseph Dunford invited Kushner on a trip to Iraq, which they took on Sunday. Apparently, Dunford and Defense Secretary James Mattis have been building relationships with the White House, and Dunford
invited Kushner to accompany him to Baghdad as part of the Pentagon’s effort to reach out to members of Trump’s inner circle.
Something like a 13 hour plane ride would give Dunford plenty of time to bond with Kushner. That, along with a first hand look at the nitty gritty of Iraq, might have given little Jared a sense of what serious people actually do to protect our national security.
It’s also possible that Dunford was able to broach the subject of the NSC’s composition. In fact, in addition to removing Bannon, the shake-up also restored Dunford’s place on the NCS.
Other factors might have played a part as well. For example, it is also quite possible that H.R. McMaster, who replaced Michael Flynn as National Security Advisor, finally got his way after the cock-up with the release of information to Devin Nunes by NCS boy intelligence officer Ezra Cohen-Watnick who McMaster had wanted to fire. But given the trust that Trump seems to have in Kushner, I think he was the one who tipped the scales.