That said, OpenStack itself is pretty awesome.
The rest of OpenStack is just cloning the administrativia, honestly. Only the most rigorously scaled AWS app, for instance (I'm thinking about things like Reddit here), is going to need the programmatic ability to spawn EC2 hosts, etc... At the startup scale, that's just bandwidth you'd be better off spending on your product's value, not cost savings.
So, I'm all in favor of OpenStack. But I don't think that cloning Amazon's API is going to win anyone any business. You have to beat them on price and quality. We'll see.
DynamoDB could be equated to Mongo or Redis, but it isn't either one of those exactly, so the switching cost is slightly higher than if it were.
SES is basically there to replace standard SMTP, but it isn't standard SMTP, so the switching cost just went up a little more.
Beanstalk is (as I understand it, could be way off here) similar to Glassfish or Weblogic (for Java), but again, isn't quite, so your switching costs go up again.
Etc., etc.
I don't necessarily disagree that lockin doesn't just happen, you get there by choosing to leverage non-standard components, vs. standing up another instance and running Mongo or SMTP, etc., but it's hard to make the decision not to leverage those things when they're there, available, and look and feel similar to the tools you need, but aren't.