>great opportunity for PaaS companies to lock-in developers.
That's why you use only Open Source in your PaaS development. Then you can go to whichever one you want with your code. Sure the interface for deployments etc might be a little different, but your app will run the same.
A Rails app on OpenShift is the same as a Rails app on Heroku is the same as a Rails app on Rackspace is the same as a Rails app on Stackao.
What you don't want to do is go down any vendor specific languages, or databases etc route..then your actually locked in. That is what you get with Microsoft Azure, or Amazon, or Google. You are not locked in if you go with Redhat, Heroku, Rackspace, Stackato etc..