Why does everyone use reverse proxies? It seems complex and inefficient. Why not serve xhr's and other dynamic content from the app server(s) and static content from a static webserver?
What would you use to provide a single endpoint to multiple instances of an app server?
Technologies/competencies change as projects evolve, and being able to effortlessly reorganized and reroute is so profoundly powerful.