Without knowing more detail about your server requirements, it is hard to tell which approach may give you better performance and/or reduce code complexity.
The funny thing is, performance and simplicity usually go together in real life server design (but coming up with the simplistic design is hard). select/poll by itself does not automatically give you better performance. And thread pool definitely does not reduce your code complexity.
To answer your question: 1 still matter. Async design does not scale well multi-proc machine but that's only true if your server run on one process. What if your server is designed to spawn multiple process on a multi-proc machine? Different process can be run under different user account and have different security setting. How about virtual machines? One thread per process doesn't mean you can't take advantage of multi-core machines.
However, i really can't remember the last time i saw a real server design based on async select(). Maybe in text books back when i was in college but not any real production system.