It's really not that complicated to write a multithreaded application, all the polling between threads thing and what have you, you use something called a mutex. If you have a good mutex system it all sort of falls into place.
However applications do need to be structurally written in such a way as to support multi-threading. Personally I could not even imagine doing multithreading in a non-OOP environment and LFS isn't exactly OOP internally, having said that i'm not Scawen either and in his way of working it might be easy for him.
There isnt really any noteable issue for single core systems. When I write a multi-threaded application I extend off a threading class - as some people elluded to above sometimes it can be hard to debug a multi-threaded application - so when this happens I simply switch things to extend off a non-threaded class that works in much the same way but from the main thread. (which one of the reasons I couldnt imagine doing multi-threading in a non-oop way), so there's that approach - but more significantly we're talking about a very minor increase in overhead anyway, at a guess i'd say less than a tenth of a percent, maybe less than a hundredth.
In terms of what benefits it brings, on the Windows platform only the main process can access DirectX, daughter processes cannot access DX, so the enhancements aren't necessarily as great as imagination might suggest. (Note: although not rellevent to LFS being Windows only, different platforms have different limitations on what daughter threads can access).
Ultimately however the decision is down to Scawen, and he has spoken on this before - around a year ago he mentioned that he did see multi-threaded support as something LFS would eventually have. He estimated it would take him roughly a month to convert LFS. That, more than any subject analysis that us lot can make, is gospel.