Mostly because we've invested huge amounts of engineering effort to work around the problems. The result is that for the most common use cases, things mostly work.
NAT systems are optimized for a few devices to be active at a time. As the number grows they might not co-operate well. Game consoles are infamous for networking problems when you have anything other than a single machine.
And the Wifi router is at least under my control (although depending on where you live and which ISP you use even that isn't necessarily true), so I can still set up some port forwarding for my internal devices as required. Because of the shortage of IPv4 addresses however carrier-grade NAT is becoming more and more common, which is truly an abomination.
NAT systems are optimized for a few devices to be active at a time. As the number grows they might not co-operate well. Game consoles are infamous for networking problems when you have anything other than a single machine.