There's no such thing as complete freedom from lock-in. unless you're totally vertically integrated from the rare earth mines, up through the wafer fabs, all the way to the OS and the user software. Example: SpaceX, which does almost everything, including software, in house and doesn't have to march to the beat of somebody else's drum.
Back to software: you're locking yourself into something whenever you deploy anything. ActiveX makes you stuck on Microsoft. Java, though claimed to be multiplatform with compliant JVMs shipped by Oracle, IBM, and the FOSS community, really makes you stuck on whichever one you start developing on. HTML5/J5/CSS will make you stuck on whatever browser version you go with when you start. Hell, even "fully open source" systems like Linux make tweaks to the kernel API that render drivers obsolete (this has nothing to do with systemd, just normal tweaks and architecture changes that are generally a Good Thing for a healthy project). So if you ship drivers that compile with 2.6.23, you need to tweak your memory allocation for 2.6.24+, and other things for 2.6.39+, and so on and on.
Bottom line: you're "locked" to whatever you go with because when they make a change, you need to spend time and money catching up with them.