I would imagine any version control system attempting to solve this problem would focus very closely on one particular language or development system. Any pragmatic solution would also have to be a highly opinionated one.
For a related idea, see Facebook's Haskell system, in which only type-safe code is allowed to be checked into the respository:
Languages change over time.