But for very small very well contained libraries I would argue that they sometime _are_ done (for many years, not forever; in a sense that any changes you can come up with add no relevant value at all, including no relevant perf. improvements or better maintainability).
At least if written in a language with nice forward and backward compatibility, cross platform support and a stable "base" ecosystem.
(So not C,C++ due to not default package manager/build system and too much divergence between platforms (e.g. unsigned long), not JS because their core build tooling changes to much (through it's getting better!), etc.)