ocalle, I agree with much of what you said and would extend that to most every company out there. Which is why we, if at all possible, handle services that support our products in-house. We host our own servers and services (databases, communications, notifications, authentication, cloud storage, payments, backups, and so much more) for nearly everything ourselves. It may take a little bit of explaining *why* we do that to some of the clients, but mostly they appreciate it.
Still, there are times when we do have to partner with outside companies for those services but we do it very carefully and are constantly looking how to bring that back into the fold. It takes effort, money and attention, but it's always been worth it.