Isn't this a problem only if you manage your dependencies by source rather than "compiled"?
That is, in Java you may not be able to compile old code with new javac, but the class file format is still understood by the JVM. So your old .jar still works.
I believe it is the same in C++ with the .so. I don't know about .NET.
In Python however, I don't think the .pyc were compatible between Python2 and Python3.