While your analysis is very much spot on, you've missed the biggest barrier to moving off of Oracle. In many instances, those Oracle instances (and the various Oracle or Oracle-partnered apps running on them) are guarded and tended by Oracle consultants. And an Oracle consultant's primary job is to own and control the client's management.
In the distant past, I worked at a major aerospace firm that was trying to move away from Oracle (due to the inability to provide analytics on very large data volumes). Problem was, the managers were essentially owned by the Oracle consultants. Any technical question about the new implementation had to be vetted by the Oracle consultants - who, of course, went to great lengths to exaggerate any possible issues, and would even fabricate fictitious issues, to infect the management with FUD. Needless to say, the project was eventually scrapped (not replaced by Oracle, but completely scrapped).
I've seen and heard of similar situations at other large organizations. Sometimes, technology is the least of the challenges in such projects.