If your product doesn't need to offer remote control, this isn't a problem. But for many products remote control is a significant USP.
I've built my own IoT systems, and this is one of the first problems that has to be solved.
In an IPv4 world, with domestic networks connected through NAT and a dynamic IP, external servers are going to remain a thing, because the problem cannot be solved without an external server.
If IPv6 ever really takes off every device will have its own address, and then all we'll have to worry about is building bullet proof top tier security into an SoC running some version of Linux that was last patched a few years ago.