I'm going to have to retreat from this. Andrei made an argument that if one had: struct S { static int foo; } S s = ...; assert(s.foo == S.foo); then, analogously: T t = ...; assert(t.init == T.init); should hold as well. Consistency is a strong argument.