Optimizaciones de valor de retorno y efectos secundarios

La optimización del valor de retorno (RVO, por sus siglas en inglés) es una técnica de optimización que involucra la elección de copias, que elimina el objeto temporal creado para mantener el valor de retorno de una función en ciertas situaciones. Entiendo el beneficio de RVO en general, pero tengo un par de preguntas.

La norma dice lo siguiente al respecto en §12.8, párrafo 32 deeste borrador de trabajo (énfasis mío).

Cuando se cumplen ciertos criterios, una implementación puede omitir la construcción de copiar / mover de un objeto de clase,incluso si el constructor de copia / movimiento y / o el destructor del objeto tienen efectos secundarios. En tales casos, la implementación trata el origen y el destino de la operación de copiar / mover omitida simplemente como dos formas diferentes de referirse al mismo objeto, y la destrucción de ese objeto ocurre en el último momento en que los dos objetos hubieran sido Destruido sin la optimización.

Luego, enumera una serie de criterios cuando la implementación puede realizar esta optimización.

Tengo un par de preguntas con respecto a esta optimización potencial:

Estoy acostumbrado a que las optimizaciones se limiten de modo que no puedan cambiar el comportamiento observable. Esta restricción no parece aplicarse a RVO.¿Alguna vez debo preocuparme por los efectos secundarios mencionados en la norma? ¿Existen casos de esquina donde esto pueda causar problemas?

¿Qué debo hacer (o no hacer) como programador para permitir que se realice esta optimización? Por ejemplo, ¿prohíbe lo siguiente el uso de copia de elision (debido a lamove):

std::vector<double> foo(int bar){
    std::vector<double> quux(bar,0);
    return std::move(quux);
}
Editar

Publiqué esto como una nueva pregunta porque las preguntas específicas que mencioné no se responden directamente en otras preguntas relacionadas.

Respuestas a la pregunta(4)

Su respuesta a la pregunta