"it is useful to think of static members as belonging to classes" (C# Language Specification, 17.2.5). Nel nostro caso (B.x), la classe è A. Si può vedere anche dal codice IL:
ldsfld int32 A::x
E' quindi naturale che si chiami il costruttore statico della classe A e non quello della classe B...