Why use a separate NAT router rather than having the app server(s) act as a NAT router?
The most obvious reason would be:
- Because routers are better routers
There are many reasons why a router can be a better router than a server, depending on the router, the server, and your needs. This makes it pretty impossible to answer your question specifically. But some general concepts which make this better are:
Routers are better at routing. They have hardware designed for this task and, often more importantly, they have software designed for this task.
Servers are often very poor routers. This depends a lot on what OS you're using. A Linux or FreeBSD server can make for a very decent router (and many routers do run these OSes).
Separation of services is often beneficial from performance, security, and practical standpoints.