To me it’s not really excitement so much as “oh god how do i make this ridiculous language do the correct thing”.
I think this all comes down to having the right mental model.
In this case, I think it helps to know that:
- returning by value by default implies making a copy,
- ...but if the output type supports move semantics and the function returns a temporary value (rvalue) then the language is on your side and tries to move it instead of doing a copy.
- and here's the kicker: now the language goes the extra mile and looks after you to avoid that copy, and if your return value allows the language to apply an optimization then the language is on your side and eliminates any potential copy without you having to do anything special.
The zany behavior is that if you set up your function to push for a move (i.e., force a local variable to be treated as a temporary), the language ceases to be able to apply its optimization.
That's basically it. No real mystery.