Something that I've only recently been made aware of: Apple Silicon SoCs dating back to the A11 iPhones (iPhone 8, iPhone 8 Plus, and the original iPhone X) lack 32-bit instruction sets. The A11 devices (said iPhones) were the first devices to ship with iOS 11. iOS 11 was the first release of iOS to drop support for 32-bit apps.
Putting this into context, it seems like this wasn't a coincidence. Apple knew they wanted to remove 32-bit instruction sets from their SoCs (making them leaner and meaner) and that was very likely why they dropped support for 32-bit apps, even for iOS devices that sport an A10 Fusion, A10X Fusion or earlier Apple SoC. It was much easier (and better for marketing) to just disallow 32-bit apps from the OS altogether.
Now, flash forward to the release of macOS Catalina, Apple decided to give the Mac this treatment too. At the time, there's no real clear idea as to why this is. All Intel CPUs employed in all Intel Macs have 32-bit instruction sets. Hell, even the T2 chip is based on the A10, which ought to have 32-bit instruction sets. In short, there is no technological reason as to why an Intel Mac can't run a 32-bit app, other than that Apple intentionally removed the functionality from the x86-64 version of macOS in Catalina.
However, putting two and two together: Apple knew, as far back as when they first announced that macOS Mojave would be Apple's last Intel-based macOS release to support 32-bit x86 Mac apps, that they'd be transitioning the Mac to their own SoCs. Said SoCs since A11, haven't changed in their lack of 32-bit instruction sets. Apple would be able to translate 64-bit x86 to 64-bit ARM via Rosetta 2, but not 32-bit x86 to 64-bit ARM (and translating 32-bit x86 to 32-bit ARM to run under 64-bit ARM is out of the question because, again, the 32-bit ARM instruction sets aren't there on anything A11 or newer). So, in short, Apple killed support for 32-bit Intel apps in Catalina to prepare for Apple Silicon not being able to run 32-bit Mac apps of any kind. This is not dissimilar to A10/X Fusion devices losing their 32-bit app support despite the hardware still supporting it. This was just a preparatory move for the Apple Silicon Mac transition. It sucks for those buying an Intel Mac whose minimum OS version is Catalina. But there you have it.
Now, where this becomes hairy is with Windows 10 for ARM64. If what I've said above is correct, then Apple Silicon Macs may have yet another hurdle to be able to run the ARM64 version of Windows 10. I'm not sure whether or not Microsoft's 32-bit x86 app translation technology merely translates 32-bit x86 to 32-bit ARM which runs natively in the ARM64 CPUs that Microsoft has, so far, supported their OS on - or whether the translation is directly from 32-bit x86 to 64-bit ARM. Furthermore, I'm not sure if Microsoft doesn't have underlying components in Windows 10 for ARM64 that are actually 32-bit (much like they sometimes have in the "x64" 64-bit x86 version of Windows) or whether the OS is 64-bit ARM from top to bottom save for emulation technologies (and even then I'm unsure if any ability on Microsoft's part to support 32-bit ARM code would cause issues when running on an Apple Silicon Mac, virtualized or not). I would imagine this complicates the prospect of Windows 10 for ARM64 on Apple Silicon Macs whether natively booting on them or running via virtualization (as I would imagine that it's hard to virtualize 32-bit ARM instruction sets that don't exist on the main CPU).
Anyway, this is the first time I've connected these dots together. Apple isn't verbose about these things and it will pretty much be left up to tech historians to make some kind of sense out of these sequence of events. But there you have it.
Putting this into context, it seems like this wasn't a coincidence. Apple knew they wanted to remove 32-bit instruction sets from their SoCs (making them leaner and meaner) and that was very likely why they dropped support for 32-bit apps, even for iOS devices that sport an A10 Fusion, A10X Fusion or earlier Apple SoC. It was much easier (and better for marketing) to just disallow 32-bit apps from the OS altogether.
Now, flash forward to the release of macOS Catalina, Apple decided to give the Mac this treatment too. At the time, there's no real clear idea as to why this is. All Intel CPUs employed in all Intel Macs have 32-bit instruction sets. Hell, even the T2 chip is based on the A10, which ought to have 32-bit instruction sets. In short, there is no technological reason as to why an Intel Mac can't run a 32-bit app, other than that Apple intentionally removed the functionality from the x86-64 version of macOS in Catalina.
However, putting two and two together: Apple knew, as far back as when they first announced that macOS Mojave would be Apple's last Intel-based macOS release to support 32-bit x86 Mac apps, that they'd be transitioning the Mac to their own SoCs. Said SoCs since A11, haven't changed in their lack of 32-bit instruction sets. Apple would be able to translate 64-bit x86 to 64-bit ARM via Rosetta 2, but not 32-bit x86 to 64-bit ARM (and translating 32-bit x86 to 32-bit ARM to run under 64-bit ARM is out of the question because, again, the 32-bit ARM instruction sets aren't there on anything A11 or newer). So, in short, Apple killed support for 32-bit Intel apps in Catalina to prepare for Apple Silicon not being able to run 32-bit Mac apps of any kind. This is not dissimilar to A10/X Fusion devices losing their 32-bit app support despite the hardware still supporting it. This was just a preparatory move for the Apple Silicon Mac transition. It sucks for those buying an Intel Mac whose minimum OS version is Catalina. But there you have it.
Now, where this becomes hairy is with Windows 10 for ARM64. If what I've said above is correct, then Apple Silicon Macs may have yet another hurdle to be able to run the ARM64 version of Windows 10. I'm not sure whether or not Microsoft's 32-bit x86 app translation technology merely translates 32-bit x86 to 32-bit ARM which runs natively in the ARM64 CPUs that Microsoft has, so far, supported their OS on - or whether the translation is directly from 32-bit x86 to 64-bit ARM. Furthermore, I'm not sure if Microsoft doesn't have underlying components in Windows 10 for ARM64 that are actually 32-bit (much like they sometimes have in the "x64" 64-bit x86 version of Windows) or whether the OS is 64-bit ARM from top to bottom save for emulation technologies (and even then I'm unsure if any ability on Microsoft's part to support 32-bit ARM code would cause issues when running on an Apple Silicon Mac, virtualized or not). I would imagine this complicates the prospect of Windows 10 for ARM64 on Apple Silicon Macs whether natively booting on them or running via virtualization (as I would imagine that it's hard to virtualize 32-bit ARM instruction sets that don't exist on the main CPU).
Anyway, this is the first time I've connected these dots together. Apple isn't verbose about these things and it will pretty much be left up to tech historians to make some kind of sense out of these sequence of events. But there you have it.