I didn't watch the video (I tried, but the audio was killing me.), but I except some collusion of several issues related to aliasing, reference parameters, pointers, and move semantics. I'm not trying to say you are worrying about nothing, and certainly, I may be the one wrong, but it is my experience that `const &' isn't an aliasing problem for optimizers until other references of different types or pointers to family types are involved.
If you only have reference, any flavor, parameter, a reference shouldn't be a problem as an optimizer has no potentially overlapping construct to worry about. (I reference this specifically because it comes up a lot with operator overloading and meta-programming.)
If you have multiple reference, any flavor, parameters referencing only different types, types unrelated by family, many optimizers will often pretend they can't overlap because the same memory can't really be two different things. (If I recall correctly, this was explicitly codified in C99 and C++11.) Actually, this has been an unexpected issue for some; some compilers have offered options to turn off this assumption because sometimes people write unusual code.