[0] https://devblogs.microsoft.com/oldnewthing/20150727-00/?p=90...
This means that there is some hardware that checks condition that will not happen during normal course of events - compiler won't generate such code and write to register that reads zero is harmless.
That hardware stays there, occupies space (does not matter how little) and drains energy (no matter how little).
This part of hardware is utterly meaningless and shows how priorities were skewed during design phase. It also shows why Itanium was such a bad chip - features were piled up instead of being cut down.
RISC-V did cut down on features first (compare division overflow in RISC-V and OpenRISC) and has a process to add them. This is why RISC-V is easy to implement even in OoO variant and why it is being picked up by everyone and their dog.
You mean 64 GB limitations? 32-bit x86 could handle that much, and I'm sure it would have without AMD64.
All in all, not ideal, but I'm sure we would have managed with it a bit longer.
[0]: https://en.wikipedia.org/wiki/Address_Windowing_Extensions
However, when AMD released AMD64 it killed this strategy. You could now buy a chip that natively ran x86 32 bit at full speed, plus be able to run code that could address more than 4 GB of RAM.
Once AMD64 came out, Itanium was a dead architecture.