This means that the administrator must be sufficiently skilled to be able to handle all anything that might come at him. Which means that he's expensive. This makes it economically hard to compete against hosting, where they administrators can be cheaper due to having more controlled environments.
One solution is for administrators to insist on that environment conforms to some sort of standard. But no meaningful standardization currently exist for this context.
Making the device/software resilient enough, is also very hard, and suffers the same problems as with human administrators. If you install a device in a network with a faulty router, then what is that device supposed to do? How does it even know the router is the culprit?
I don't see why it can't be both. I run an eCommerce website and pay $5/month to DigitalOcean for what is basically a VPS running Wordpress and Cyberpanel (free and good cPanel alternative).
The reason I'm happy to pay that $5 is because it makes a whole host of technical problems disappear. I don't have to worry about maintaining hardware or dealing with an outage if my (consumer) internet is down for maintenance. I don't have to configure my router or set up the CDN, and the bandwidth they have at these data centres is 10x what I have at home.
If these technical problems disappeared, I wouldn't need to outsource the hosting to an external provider and could save myself the hosting fee. On the other hand, if cloud hosting were significantly more expensive (or if I was just running a website as a hobby and didn't care about downtime), I'd definitely spend the time learning to self-host.