commodity CPUs running user-space code really are deterministic in practice, or at least the nondeterminism can be efficiently detected and controlled, without restorting to pervasive binary instrumentation. We're mostly winning that bet on x86 (but not ARM)
I'm curious about that mention of ARM --- since I always thought it was a far simpler and more rigidly defined architecture with fewer edge-cases/undefined (more like implementation-defined) behaviour than x86.