If I use DynamoDB, I'm stuck with AWS, absent an expensive, difficult migration.
Even with Kubernetes, moving from EKS to your own cluster means spinning up your own k8s masters, which might not be in $RANDOM_DEVELOPER's wheelhouse. And IIRC AWS has their own special things for doing ingress that you'd need to change as well.
Even just going from EC2 to Google's analog might mean rewriting private tooling that specifically uses AWS APIs.
As for Ingress, Amazon does have an ingress controller that configures an Application Load Balancer with kubernetes Ingress API objects. I feel like this locks you in less because again, Ingress is standardized. The problem with Ingress specifically is that the standard doesn't cover things people actually want their ingress controller to do, so every implementation has their own set of features. We use nginx... you better believe there are literal nginx.conf snippets inside the Kubernetes API objects to get things to do what we want. So this is just a case of Kubernetes being bad, not really cloud provider lockin. I'm more stuck on nginx than on Amazon.
(As for load balancers; again, Amazon has proprietary configuration parameters that won't be portable, but they don't really do anything important. You can make your Amazon load balancer terminate TLS (a bad idea), and pick which of the 3 Amazon load balancer types you want to use. Switch to Google, and that won't work... but you also probably won't care. The Load Balancer API spec seems to do what people want, so it's relatively commoditized and you won't be sad when you switch providers. We actually have to have a wildcard certificate specifically because Amazon's classic load balancers are so bad. Would be happy to not terminate TLS in the load balancer and have Envoy or Nginx terminate TLS and ask letsencrypt for a new certificate every couple months.)
Sure Kubernetes is an open GCP product, but what about datastore, Spanner, Cloud SQL, their memory cache, urlfetch, and a host of other closed source and private services. Kubernetes seems to be the exception to the rule.
A world where front ends are deployed on a CDN and the back ends are all containers is very commodity driven. Also infrastructure being set up with code on platforms that target multiple providers like Terraform provides more ability to move systems.
It'll be really interesting to see if AWS can keep their margins in such a world.
Given that MS make huge amounts of money from email and have virtual lock in on corporate email it's very possible, but on the other hand perhaps it won't happen if everyone is, as they tend to be, using open frameworks and generally open systems.
This is hardly the case if you stick to reputable hardware and Linux distros, e.g. Dell servers + CentOS.