やっぱりバグっぽい?

7.1.6.4
6. auto の型推論は、関数テンプレートの呼び出しで、テンプレート引数に使われるものと同じ。
(auto を template <class U> の U で置き換えて、推論する)

template <class U>
void g(U z){ z = 2; }

template <class T>
void f(T x){
  [&] {
    std::cout << x << std::endl;
    auto y = x; // auto が int& に推論されるなら
    y = 1;
    std::cout << x << std::endl;
    g(x); // U も int& に推論されるはず
    std::cout << x << std::endl; // x は変更されたか?
  }();
}

int main(){ f(0); }

結果:
0
1 // auto は int& になった
1 // U は int になった