I have used Apache for over twelve years as both an administrator and developer for large Perl, Python, and Ruby web applications. Apache is a rock-solid web server which has a clean/modular design and a strong UNIX bent. One of it's most powerful features is its sheer modularity and good documentation. It is a very manageable web server. It's mature and proven as can be clearly seen by 15 years of dominant market share.
While the user documentation is very good, there is unfortunately precious little documentation for developers/module writers, and I think this tends to hurt it a little in that it doesn't attract as many developers as it could. But that in no way means that it's poorly designed -- just poorly documented in this respect. There is a book by Nick Kew which seems to be the definitive resource for module writers. But it would be nice if the project itself had some better documentation on all aspects of writing modules.
As for it being over-engineered -- hogwash. It has an excellent design. Yes, there are some warts here and there, but that's true for all software. It's use of memory pools is fantastic, it's ability to plug in different back-ends speaks to how clean and modular it is, it has a great C-API, and the APR makes many things much easier not only for the Apache project for for developers in other projects. If you care anything at all about portability, you will appreciate the APR. It may not be perfect, but it's still solid, well-designed, and very convenient.
From the standpoint of sheer features, flexibility, administration, platform support, scalability, documentation, and maturity, Apache is a fantastic web server.