(1) There are some set of problems that users have or
believe they have.
(2) NAT solves at least some of those problems, at some
cost (say Cn), both financial and operational and
that solution has benefit Bn.
(3) The fact that a large number of people have chosen
to use NAT is a strong argument that B>C. (Here's
where the invocation of revealed preference comes in).
There's ample evidence that many users aren't aware of the costs of
using NAT, or especially, weren't aware of those costs before they
started using NAT - so their choices were poorly informed. So no, it's
not reasonable to conclude that decisions to use NATs are justified by
realistic cost-benefit estimations of doing so.
There's also ample evidence that many users are not free to make this
choice, or that the costs of not using NAT are artificially inflated.
Note also that cost optimization by individual users (even if
well-informed) does not necessarily produce a cost-optimized result for
the overall community.
(6) The argument that I thought I heard people (though not
you) making is that Cn > Bn.
I think it would be more realistic to say that the cost of using NAT
for everything (that is, of not providing any e2e connectivity) is
greater than the benefit of using NAT for everything. e.g. If you run a
home network, you can often configure your NAT to accept external
traffic on some ports and pass it to a single designated host. (you
might argue that the fact that this option is popular indicates a
revealed preference among users to not NAT everything.) But while this
works in corner cases, it doesn't scale.