The less you have in the cloud (generally) the better the economics for the manufacturer.
The less you have in the cloud (generally) the better the economics for the manufacturer.
The more complex your software is, the more true this is - self-hosted enterprise software is not only more work to setup (ergo, more support tickets) but installed on a vast array of configurations (e.g., bare-metal K8s, OpenShift, GKE, Docker Swarm, EC2, ECS, etc, etc), only a portion of which are economical to test against and which will generate a steady stream of unique issues. Having an "enterprise-ready" SaaS product is expensive, sure, but probably less expensive than supporting hundreds or thousands of customers setting up their own unique version of your product.
On the other side, it's not possible to move hardware to the cloud so the core support costs don't - can't - go away. Adding cloud in that case is adding ongoing hosting costs and support costs and is at best reducing the volume of support requests, but adding "Cloud" won't eliminate whole classes of customer support like it could with a software-only product.
Pre-optimization became a thing because enthusiasts liked the challenge of creating an elegant solution, but I posit that it continued because devs knew they were not going to be getting back to fixing inefficient code if it mostly worked. Usually stuff like this doesn’t matter when you’re leaking 5mb an hour on a 128gb dedicated server and you’re deploying at least twice per week. But when the devices that connect to you go from 10,000 to 1,000,000, you’re leaking 500mb an hour and then you have a problem very quickly.