This is essentially how we do it too. We use SmartBIM Library to grab families directly from the Revit project file (we find it works better this way, because there really is no longer a project level need to have a family saved out as a file in a folder and this insures that we get the final version). These families are first collected into a project folder and then the better of those families get reviewed, modified as needed, and added to an approved office library (which is read only). Project library folders are accessible to all project teams but with warning. Project teams are allowed to create, find, and use their own families as needed to meet he projects requirements.
For us, this is the best solution because we so very rarely use the same building systems from project to project and even when we do, the details used are usually very different. It would be a huge barrier to the projects and the design if every time they wanted to do something they had to stop and ask someone else to create a component (family) for them...