These days, computers are used by one, maybe two or three people. If I, the only user of my phone, decide I want to use port 80, why can't I? Put this stuff behind a special privilege for all I care.
Yeah, IPv6 isn't everywhere, but if you have it on your phone and everywhere you want to access you phone from...
I had some experience getting yelled at by a carrier for something like this. If your “server” is mobile, they get testy.
I have previously used carriers that did expose (IPv6) addresses, though. Port 25/53/etc were blocked but I could host a web server on there if I wanted to drain the 2GB of mobile data I had at the time.
NAT isn't a problem with IPv6 support. Of course there's the network firewall, but adding a rule to accept ports 1714-1764 isn't that hard.
Right now I've solved the problem with a VPN tunnel, but that's not really that permanent a solution.
Even on a phone (that's not a "server" in the traditional sense), e.g. listening on UDP port 5353 is needed to show up in mDNS.
Because they're < 1024, I guess. Anywhere I've seen besides windows needs you to be root, or have some other specific permission to listen on that port.
Not that I agree with it, but it is the existing status quo.