I wonder if Apple might do something about this. They don't care so much for the FOSS side of things, obviously, but I wonder if they might demand chips from Intel without the management engine, because it's a potential attack vector they can't control.
I suspect at some point they will simply drop Intel for their own (ARM) platform. I think moving will be easy once all app store submissions are in bitcode.
I strongly believe you are correct. They have been mentioning that their ARM processors are desktop worthy. I also believe Apple are displeased with Intel's current inability to consistently get their new chips to market. All of this has to make one think Apple will take matters into their own hands soon. Likely within the next 2 years.
Important bit to note here: the two year timeline is probably only feasible for low end devices, like the MacBook and MBA.
Towards the higher end, ARM can't hope to field anything in that timeline to compete with even todays i5 or i7s (or corresponding Xeons). Some people do use this kind of CPU power.
I don't have a guess at what Apple is actually going to do, but the Retina rollout is a plausible model. Even 5+ years after the first Retina product, it's still not available across the lineup.
I don't think the switch would present a significant problem in marketing or for developers, so it would purely be a question of having the chips that fit the products. The Macbook, as you point out, is basically already there.
It sounds almost unbelievable, but it could happen. I mean, Apple, unlike every other computer company, has successfully transitioned processor architecture twice before (68k to PowerPC, PowerPC to Intel). They could pull the same tricks they pulled for PPC to have a smooth transition: x86 emulation on ARM, “Universal” (fat) binaries, and making it easy for developers to port their apps.
bitcode is still architecture dependent, bitcode generated for x86 won't run on ARM. The only reason they are requiring bitcode is so CPU specific optimizations can be done, not to allow for portability between uarchs.