Мотти прав насчет порядка, но есть еще несколько вещей, которые следует учитывать:
Компиляторы обычно используют переменную скрытого флага, чтобы указать, была ли локальная статика уже инициализирована, и этот флаг проверяется при каждой записи в функцию. Очевидно, это небольшой удар по производительности, но больше всего беспокоит то, что этот флаг не гарантированно является потокобезопасным.
Если у вас локальная статика, как указано выше, и 'foo' вызывается из нескольких потоков, у вас могут быть условия гонки, из-за которых 'plonk' инициализируется неправильно или даже несколько раз. Кроме того, в этом случае 'plonk' может быть разрушен потоком, отличным от того, который его сконструировал.
Несмотря на то, что говорится в стандарте, я бы очень осторожно относился к фактическому порядку локального статического разрушения, потому что вполне возможно, что вы можете невольно полагаться на статичность, действующую после того, как она разрушена, и это действительно трудно отследить вниз.