The problem is that the new user database will have some variation. Where is your authentication source? What fields should users have? Do you need to send out a message when users are created/modified? Do you need to authorize user creation? How do you know what permissions a user has?
"Thats fine", you say "we'll provide those via configuration!"
So you start adding configuration variables for all the different variations that people need. A place to specify the authentication source. A way to specify what fields a user should have. Some canned behaviors for sending out messages.
But now your configuration is more and more complex, yet still only covers the most common cases. "So why don't we add some plug-ins to the configuration so that we can support new behaviors?"
And you've just spent a whole lot of time and effort to produce something that looks and acts like a programming language, but without the widespread support, libraries, or userbase.