Why dont O/S support executables with something like LLVM binaries and generate the native code at load time ?
This would solve so many problems including the need for emulators, because all binaries would work on all CPUS, and the OS would produce the best code at load time.
No more cpu detection, vector stuff always works on the latest & widest instructions that are available. CPUs can also retired old legacy instructions without worry and more.