Dynamic initialization can be ordered or unordered:
Dynamic initialization of a non-local variable with static storage duration is either ordered or unordered.
This does not say anything about order of static initialization. Is it true that order of static initialization is implementation defined?
Static initialization does not mean "initialization of variables with static storage duration". It is a much more limited term and is defined in §3.6.2 [basic.start.init]/p2.
Together, zero-initialization and constant initialization are called static initialization; all other initialization is dynamic initialization. Static initialization shall be performed before any dynamic initialization takes place.
Constant initialization is defined in the same paragraph and basically involves initialization to compile-time constants.
Because static initialization involves initialization to compile-time constants and is guaranteed to occur before any dynamic initialization takes place, the order doesn't really matter. (In practice, for objects of static storage duration, the initial values are probably placed in the data segment (bss segment for zero-initialization) of the compiled executable and loaded by the operating system directly at program start, so speaking of an "order" doesn't make much sense.) Anything for which the "static initialization fiasco" can arise actually involves dynamic initialization.