Yes, and it has been three years between each of them. ODST doesn't count, as it's from a small subteam, which is the point. A small team took the Halo 3 engine and got something that loosely resembles a game out the door in a year (give or take) of development time. A larger team should be able to get something that more resembles a game out the door every other year. There's no need to start from scratch every time out.
If I'm Microsoft, I'm frustrated with their throughput. A bunch of profitable development houses take the time to get their engines running and then release game after successful game, maximizing game sales, revenue, and profit without having to redo everything. Bungie, on the other hand, starts from scratch each time out, and sometimes has to start over even after already starting over (I present to you the screwed up development of Halo 2).
Yes, they've made a lot of money doing it the way they do. Yet I can't help but think they would make a lot more money just doing it the way of Infinity Ward, Epic, Insomniac, and the list goes on.