Yeah sorry, I was temporarily stunned by the big lettering. :-) The answer is that you can't make 1 simple recipe that is best for all applications, even though everyone wants that silver bullet type of code. Its easy on the brain to have boilerplate code that is general purpose... you don't have to think as much.
Sometimes forking is better, sometimes threads, sometimes just an event-loop is best. My rule of thumb is that if your app needs REALTIME communication between separate worker subs, use threads. If one worker dosn't care about what the other is doing, use a fork. Threads should be avoided when they are required to load big data sets, as the memory used will not be freed by the Perl process.... forking off memory hungry workers is best, as the OS will reclaim that memory when the forked process dies.
Those are general guidlines.