Hi,
What's the motivation for non-static thread-local class members?
What's the motivation for restricting an instance of a class to have
static storage duration?
Answer: Class versus per-instance member variable seems fully orthogonal to shared-by-all-threads versus thread-local, logically speaking. But a lot of complex scenarios arise if the thread lifetime is not contained within the lifetime an object that has thread_local variables as non-static members. Only allowing per-instance thread_local member variables avoids that complexity.
If it was truly orthogonal, then you could have non-static instances of this class that has non-static thread-local variables.