If one is running a mail server and has it inside their firewall and if using one IP then t has to use NAT. Couldn't one presumeably use the setup above and run a mail server on Plan 9 and bypass having to use NAT? And also do the same thing for a web server?
Yes, I do that. The example you quoted creates two independent IP stacks, starting with the default '#I0' IP stack on ether0, then adding a new IP stack '#I1' connected to ether1 (#l1).
There is a separate TCP/IP, UDP/IP, ICMP etc for each stack. I also import /net from a Linux server via Inferno (on Linux) so I can send mail from a non-RBLd address.
You can create several types of virtual interface ("medium") on the IP stack, connected to a user-mode process. See pkg and netdev in ip(3)
I still have a router with NAT though for non-Plan 9 machines. I never got round to writing a NAT for Plan 9 (which could work in user mode).