A inicialização do objeto estático local é segura para segmentos?

As duas funções a seguir produzem diferentes montagens, o que me diz que elas são diferentes. Alguém pode me dizer de que maneira eles são diferentes? E é a inicialização de variável estática local de função em func2 thread-safe ou não? Se a resposta depender do compilador, gostaria de saber como os compiladores mais comuns se comportariam com o func2.

int func1(int val)
{
    const auto impl = [](int v)
    {
        return v * 10;
    };

    return impl(val);
}

int func2(int val)
{
    static const auto impl = [](int v)
    {
        return v * 10;
    };

    return impl(val);
}

questionAnswers(2)

yourAnswerToTheQuestion