C++14 states:
3.6.2 Initialization of non-local variables
...
Variables with static storage duration (3.7.1) or thread storage duration (3.7.2) shall be zero-initialized (8.5) before any other initialization takes place.
Ok, this appears to be the foundation for this question.
Constant initialization is performed:
[ ... ]
This is followed by the definition of constant initialization. To make a long story short, both const int x=5; and static int var=x; seem to meet the requirements for constant initialization.
So, based on that, this seems to suggest that "static variables [are] initialized multiple times".
Forging ahead:
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.
So, both zero-initialization and constant initialization, the "multiple" initializations that are the subject matter here, must occur before dynamic initialization.
From this, I conclude that although, technically, the claim that "static variables [are] initialized multiple times" is true, I don't see any way to actually observe it. You need dynamic initialization to observe something. And dynamic initialization doesn't take place until static initialization is completed.
From this, it looks to me like the term "static initialization", as defined in 3.6.2, isn't really the same "static initialization" as in "static initialization fiasco". Seems to me that "static initialization fiasco" should really be called "dynamic initialization fiasco".
xis set to0then5, conceptually. Call it what you will