Also important to not fall down the hole in a couple of years where these shared libraries are being used all over the place and changing them becomes hard. Good to always question if they should be a module or perhaps their own api.
Agreed re: shared libraries being used all over the place, but I don't think that requires changing a module to an API.
git submodules are designed to solve this problem and do so very well, allowing each project that uses a shared module to include whatever version it pleases, yet allowing the project using the shared module to update/rollback to a newer/older version.