Ciclo de vida do lambda em C ++

No código a seguir, o que acontece no tempo de execução?

while ( ([]()->bool { return something(); })() ) {
    ...
}
A instância lambda é criada apenas uma vez e reutilizada nas iterações subsequentes.Toda iteração cria uma nova instância, que é usada apenas uma vez.Nenhuma das opções acima (explique).

Inicialmente, parece-me óbvio que ele é recriado em todas as iterações, mas me pergunto se o compilador faz algum tipo de otimização.