VC++2010なんだけど、ムーブ後なのにf1()もf2()も普通に呼べちゃうのはなんで?

#include <functional>

int main()
{
std::function<void()> f1 = [&]() { std::cout << "1" << std::endl; };
std::function<void()> f2 = std::move(f1);
f1();
f2();

return 0;
}