Fair, though I think a large part of why this has always been more difficult than it should be is the fundamental design of TCP and IP. The former encodes notions of “roaming client” and “durable server” in ways incompatible with devices that periodically want to assume either role, and the latter (at least IPv4) encourages network segmentation in such a way that reachability and discoverability are harder than people might think.
The centralized powers that be definitely deserve a share of the blame to be sure, but some of it is architectural.