You’re referring to networks that have a “local sysadmin”. I’m also considering networks that don’t.
You have been making fully general claims about the evilness of NAT, not conditional on whether local networks are (well-)managed or not. I don’t think it is as clear-cut as you make it to be.
The proliferation of behind-the-NAT machines has many reasons—some historical (as you pointed out, there was/is a shortage of IPv4 addresses and ISPs were stingy with allocating them), but some valid reasons of security, convenience, etc. There are a LOT of internal networks belonging to organizations, most of them should stay behind NAT.
Your basic complaint is that NAT makes life hard for developers of network applications. Yes, it does. Suck it up. Reality is complicated and coding for the real world instead of an abstract model is messy. Yes, it would be nice if everything were simple. No, it’s not going to happen.
You have been making fully general claims about the evilness of NAT, not conditional on whether local networks are (well-)managed or not. I don’t think it is as clear-cut as you make it to be.
The proliferation of behind-the-NAT machines has many reasons—some historical (as you pointed out, there was/is a shortage of IPv4 addresses and ISPs were stingy with allocating them), but some valid reasons of security, convenience, etc. There are a LOT of internal networks belonging to organizations, most of them should stay behind NAT.
Your basic complaint is that NAT makes life hard for developers of network applications. Yes, it does. Suck it up. Reality is complicated and coding for the real world instead of an abstract model is messy. Yes, it would be nice if everything were simple. No, it’s not going to happen.