@nprofile1q... The reason for this specific mess, ultimately, is DRM. RMSDK was only used because publishers demanded DRM and now vendors can't fully remove it because they have users, clients, and partners whose libraries and catalogues would be turned into opaque binary blobs.
But I have no doubt the code for RMSDK is a complete nightmare as well.