I think these are all good concerns. Where FdI runs counter to lock-in is applications do not "know" the target platform (as in they don't hard code any dependency on the platform). Respectively, the app is staying portable to every target that the app can deploy to.