This is probably the highest performing model. Under WIN32 this can be achieved by using completion ports. Note that any single process model is subject to robustness issues depending on whether a single thread is terminated or an entire process is terminated when segfaults and such occur. That is, we cannot allow code outside of the process model code itself to make any system calls. This is perhaps the worst issue of all.
Many routines assume they can allocate large amounts of stack space as temporary storge.
One solution is to abstract string and URL operations a bit more and use pools more liberally. BUFF is probably the best replacement. While things like sfio provide a useable replacement, we've discussed them in the past and decided that there are copyright and portability issues. To see why consider NFS filesystems. Consult squid for some example code in this area, squid uses an external process in all of its implementations.