Re: Emulation
"You are quite right. I'm talking about emulation, and the pain that would happen when what you're emulating is a virtual machine host."
Oddly enough that is exactly the problem that has been solved many times over from the 80s to the current day. Even today's common-or-garden VMs emulate (a surprising amount of) PC hardware sufficiently to host Windows 10.
While I it doesn't belong in the "trivial" bracket, emulating the CPU isn't as hard as you may think - as evidenced by the last 40 years or so, and Windows 10 and it's apps don't require cycle accurate emulation for everything either - as evidenced by the fact they run under VMs - even with PCI(e) passthrough quite happily.
"ranslating all of Windows's instructions from X86 and X86-64 to ARM will require a lot of emulation, and it will either take a lot of processing (meaning it runs slowly) or require a massive cache of pretranslated instructions as you have mentioned, "
I have to respectfully disagree with you on that point - based on what I saw over 20 years ago with NT x86 binaries running quicker on an Alpha box - and the current state of the art with respect to VMs and JVMs. :)
"Remember that Windows 10 weighs in at eight gigabytes, a lot of which is X86 binaries. "
Another way to look at this is modern CPUs have a certain amount of cache - and a very high penalty for accessible data in the DIMMs. Windows 10 like all other software executing on modern CPUs, has to be kind to those caches to get close to acceptable performance, this means that the code is tuned to make those caches effective, which in turn helps you if you're loading up caches with translated instructions.
Additionally - most, if not all AMD & Intel processors are actually RISC style machines under the covers - they have a front end that decodes (aka translates) x86 CISC instructions into micro-ops... The emulator would be doing something similar...
In summary I don't think it's a stretch for Apple to make on the hoof translation work - but I think (very pragmatically) they've taken the approach of generating fat binaries instead.