Насколько я понимаю:
1) Когда структура копируется, а не перемещается или создается.
2) Смысл семантики перемещения заключается в том, что ни одно из двух не должно происходить. Новое расположение структуры инициализируется побитовой копией структуры, а старое расположение выходит из области видимости и становится недоступным. Таким образом, структура «переместилась» из А в Б.
3) Это типичная ситуация с ходом:
S init(bool someFlag)
{
S s;
s.foo = someFlag? bar : baz;
return s; // `s` can now be safely moved from here...
}
// call-site:
S s = init(flag);
//^ ... to here.