Please bear in mind that I am learning and have never set up a network with routers and switches myself. Also please bear this is sort of going to be loaded question because there are multiple layers I'm confused about.
My question stems from this other question asked in Server Fault.
In the question, it seems that OP's ISP provided a gateway (which I presume would have NAT functionality). So I'm not sure why you couldn't have a switch in between the ISP's gateway and the clients, and instead need yet another gateway with NAT. Is it because we won't have access to configure the ISP's gateway to communicate to the switch?
Secondly, why do we need NAT at all? Based on OP's post it seems like he had static IPs that he can use for each of his devices. Is it not possible for the ISP's gateway to strictly act as WAN access? As in, if the device had a static address of 123.123.123.123, there's no need to have the gateway translate that address to the public. And so, can't each device have a static IP address and be connected with a switch?
If we don't need to do NAT, then we don't want the ISP's gateway to be doing the routing (because if it was good at doing that, why would we have a separate switch in the first place). We want every traffic that's passing the gateway to directly go to the layer 3 switch and have the switch take care of the routing to each device. This comes back to my first question. Is the reason why "we can't simply put a switch between the ISP's gateway and the clients" that we can't configure the ISP's gateway to pass every traffic to the layer 3 switch? (Actually, even if we do need NAT, assuming the ISP's gateway does NAT, if the ISP's gateway receives a packet, we just need the ISP's gateway to tell the switch what the translated MAC and private IP address are so the layer 3 switch can do the switching/routing to the devices)