There is a more fundamental/better reason to discourage multiple versions of libraries. For some libraries it is not possible/correct to have more than one version running concurrently (and sometimes even sequentially) on the same system. Such libraries include those which manage access to local state, or arbitrate access to resources. Sure these *can* sometimes be written so that multiple (inconsistent) versions can co-exist, but that would typically make then unnecessarily more complex, and hugely difficult to test. In some cases, such as where the local state changes format between versions, it is very hard, or impossible to get right.
If people get used to shipping their own versions of libraries they might accidentally include such a library, causing horrible system-wide errors, or restrictions ("No you can't run X and Y at the same time" or worse "you can't install X and Y at the same time").