Hi ! great question !
First you may find this resource useful
It offers different strategies among them the one you are describing.
Second, I can share experience.
In our setup, as R admin, I installed a set of packages in a share library so that new users can start right away. This shared library is configured in the by default on the servers so that everyone has read access. We decided to have one shared library per R version. This insure our user that if they use this shared library exclusively, work will be reproducible.
The challenge is adding a new package in this library when needed. It was not easy at first we a lot of custom functions, but since we are using now snapshot repository from our package manager, it is now easy. It means we have our share library configured using a frozen cran url from the package manager so that we can later in time install non already installed packages without having the risk of breaking anything.
I believe this is this strategy https://environments.rstudio.com/shared.html
Apart from that, users can install missing or newer packages in their own library path.
Everything works fine and user (specifically new users) are very happy with this approach.
Another approach we have use too, is configuring new renv
to have a shared renv cache on the servers so that every user that needs to use renv for its development won't have to install the package if already in the cache (if another user was needing it before for example). This helps to setup very quick some new renv project.
Hope it helps answer some of your questions. I am happy to share further details if you have some questions.