And for the record, I'm absolutely pedantic about adding "final" qualifiers to functions that aren't intended to be overridable, and yet it recently came to light that the methods a class in Druntime that I created (Condition) are not labeled final. I can't imagine any reason why I'd have made that decision explicitly, since there's no real function to having them be overridable. It was obviously a mistake on my part, and yet there are two instances where Condition has been subclassed and these methods overridden (once by me, to be honest), to questionable ends. And so at this point I can't add the "final" qualifier without breaking user code, even though it was always meant to be there.
In short, I don't think that saying this is often overlooked is even necessarily an assertion that library writers are sloppy or don't care about performance. It being the default behavior and having no detectable issues at design time means that these problems will slip in from time to time. It's hard to grep for the lack of a keyword.
