ANNOUNCEMENT: community.oracle.com is currently Read only due to planned upgrade until 28-Sep-2020 9:30 AM Pacific Time. Any changes made during Read only mode will be lost and will need to be re-entered when the application is back read/write.
As per security best practice, the application server (middle tier) should reside on a separate server than the database server. ORDS connected to the Oracle database using JDBC so it can just as easily connect to anyserver:db:1521 as localhost:db:1521.
1. Given a sufficiently fast LAN (Gigabit), is there any performance impact to APEX applications when ORDS and the databse are on different servers? Does it even matter?
2. Given that ORDS is Java-based, are there any pros/cons to installing ORDS/Tomcat on a Linux box vs a Windows box? Does it even matter?
Network latency can always introduce a performance hit. With the servers close and fast network, it will be minimal if noticeable at all. As you mention this is best practices and most deployments are done this way.
There's no difference to putting ords on windows or linux ( except linux is better )