And i get to say "you're typing on an iphone aren't you" now and then
Anyway, i'm not that knowledgeable about multithreading, but if you had time to explain what the gaping holes in my idea is that would be awesome! I promise i won't turn it into one of "those" threads, and if posting it would, a PM would work just as well.
No worries. Basically, it's what I already said, along with what Keith noted. But the other huge thing is that, going along with what Keith said, the amount of work that this adds is pretty substantial -- to the CPU, to the RAM load, to the processor bus, etc. So, with at 32bit program, we'd hit RAM issues way, way faster.
But even more critically, it would be doing vastly more work and thus make the single-core performance absolutely horrible unless we kept two enormous code branches, one for the multithreading and one for the single threading. And those would have about a 0% chance of being synchronous with one another, giving deterministic results that was identical between the two, anyway.
It's one of those things that just gets exponentially, exponentially more complicated because everything is related. In a game like a FPS or other action game, it's comparably easy to use multiple cores because all of the individual simulations are ALWAYS out of sync. Half-Life isn't synchronous between player sessions, it has to constantly re-sync. So that's why you see people sometimes leap forwards in a shooter game, and someone you "killed" pop right back to life -- or someone shooting you around a corner, depending on the game. Those are all artifacts of desyncs being fixed. Generally in a low-latency environment the sync is within 500ms of one another, so there's little of those artifacts, but when lag gets hit it gets worse. Conversely, strategy games get choppy and slow instead, because they are relying on the sync rather than re-syncing because of the massive amounts of data there -- you can't sync hundreds of objects a second in realtime, let alone thousands or tens of thousands. In most FPS games, it's 64 at the most, and they use a lot of tricky prediction and such to minimize the load.
Even if we had 6 coders instead of 2, it would be really an iffy thing to approach with 2 of them being devoted fulltime just to making multithreading work.