I think the issue is that for non-const static members, the compiler
needs to know where to place the memory definition (what object module
contains the definition). For static const, this isn't an issue, as the
compiler doesn't actually need to create a memory object, it can just
always use the constant.
For non-static members, it just knows to add the initialization to all
constructors.
Due to templates and inline functions, the compiler needs to have
mechanisms to handle this sort of stuff, but maybe this case predates
those requirements and was never added.