Not doing things atomically when they should be (incl. missing locks around tiny ops) would be a pretty large class.
With native multithreading data can pass from thread to thread millions of times per second, and you're much less likely to hit obscure interactions when limited instead to maybe a couple hundred context switches per second.