Lambda como uma variável de modelo

Durante alguma investigação relacionada ao "Modelo variável", descobri um comportamento de código estranho para mim. O padrão diz alguma coisa sobre esse comportamento?

//Header.h
#pragma once

template<typename T>
auto myvar = []() -> T&{
    static T v;
    return v;
};

//Source.cpp
#include <iostream>
#include "Header.h"

void testFunction()
{
    std::cout << myvar<int>() << '\n';
}

//main.cpp
#include <iostream>
#include "Header.h"

void testFunction();

int main(int argc, char **argv) 
{
    myvar<int>() = 10;

    testFunction();

    std::cout << myvar<int>() << '\n';
}

Saída

0
10

Eu espero

10
10

questionAnswers(1)

yourAnswerToTheQuestion