I am afraid it is too late for DF to ever support modern CPU's. Toady has stated explicitly that he does not know how to multi-thread and he will not accept help. Every feature that is added to DF makes a future shift to multi-threading geometrically harder. By the time toady gets to the point where he would consider it, it will be to late and it would take a complete rewrite to get it to use multiple cores and also be stable.
I think you are overstating the difficulty of the coding...
You might be right if I said it was exponentially harder, but I didn't. Making multi-threaded apps is easy. All you have to do is split your workload into seperate threads. This works great, until the different threads have to communicate with each other or access the same object. Then you have to synchronize (only where you need to, because it causes a lot of overhead) and then you have to avoid deadlocks, race conditions, CPU starvation, etc. Each of these issues are very difficult to debug, they are intermittent, can not be watched by simply stepping through the debugger, and can be prevented, caused, revealed or hidden by something as simple as a write line being put in to watch a variable (IO requires a context switch and some wait time, that can change thread scheduling or delay the process just enough for the lock to resolve or one of the actors to break).
This is what I do for a living (performance critical custom applications, not games), and I am pretty good at it. If a system isn't designed and built with multi-threading in mind, all these difficult issues are made that much more painful when it comes time to do the dirty work. While Toady has perhaps the best planning and documentation I have ever seen in a single developer project, I don't think its enough.