Isn't this sort of scenario the reason the LGPL exists? That way one can use the library in proprietary projects if needed, but any modifications to the library itself must still be open sourced, under the same license.
Doesn't sound like a restriction to me.
- Let people do whatever they want with it (BSD).
- Let people use it as a library, but force them to release changes to the library itself (LGPL).
- Let people use the software, but force them to release all modifications (GPL).
Neither is good or bad, but depends on the intention of the developer. Also, as a matter of etiquette, contributing changes back even for BSD code should be the norm, whenever there is no reason not to do so. But (L)GPL puts some enforcement power behind that rule of etiquette (and arguably created the norm).