A good benchmark test requires a website with many users who show all sorts of random behaviour. I don't have the right environment to do such test, but I'm really interested in the results. I did a performance test between Apache and Hiawatha a few years ago. The result is that Hiawatha is as fast as Apache for dynamic content (CGI) and twice as fast for static content (HTML, images, etc). I can already tell you that Hiawatha is not the fastest server when it comes to data throughput. On the other hand, Hiawatha has some interesting features which makes it fast: internal cache, load balanced FastCGI support and banning. Yes, banning improves the overal performance of a server, because it eliminates the connections of abusers. Read the Hiawatha success story for puppylinux.ca
here. Performance comparing is not as easy as it looks. It's more than just testing data throughput from a single client.
My opinion about the c10k problem: 10,000 concurrent connections on a single machine is not a problem that should be solved. It should be avoided. If you have a website that busy, using only a single machine is not wise. You should start thinking about fallback and redundancy. But, nevertheless, it would be nice to see how many concurrent connections Hiawatha can handle. Then again, I don't have the right environment to perform such test.
Hiawatha uses threads, unlike Apache which uses the pre-fork model. I think a thread model is better then the poll/select model, because most modern servers have multiple processors. A single process application which uses the poll/select model does not uses all the power of the server, which a threaded application does.