Well, "(1) should be thread-safe since it cannot dictate how it will be used by callers" doesn't hold. For instance most of .NET classes are not thread-safe because thread-safety has a cost. So it's a question of documentation (it's well documented in .NET).
But "(2) the authors clearly intended this library to be thread-safe" means that piece of code is bad. So you have a point here.
But "(2) the authors clearly intended this library to be thread-safe" means that piece of code is bad. So you have a point here.