As people have pointed out, most games are available on all platforms. Halo cannot compete with a game that sells on three other consoles, and many people that buy COD may not buy Halo, even for the 360. Because Halo is unique to Xbox, that means that Halo the defining game which differentiates the Xbox from other consoles.
Halo does not exist as a game to compete directly with COD. Instead, Halo should be the driver of sales for the Xbox. If a game (COD) is on all platforms, then you can buy any console to play it. However, Halo is only on the Xbox.
By making Halo more like COD, 343 just make it easier for people to buy any other console, and remove the unique game that was the reason many people bought an Xbox or Xbox360.
Ironically, Halo’s move towards COD (if it continues) will see 343 cannibalize the next Xbox’s sales, if the next Sony and Nintendo products also offer COD.
Unless Microsoft comes up with another game that defines the next console’s sales.