戻り値 const Effective C++ でググれ

>・ 戻り値にconstを使うと、問題のある関数の安全性や効率を改善できる
>
>例2)
>const Rational operator* (const Ratioanl& lhs, const Rationa& rhs);
>
>(a * b) = c のようなコードは不正だが、const 指定すればコンパイル時エラーとなる。
>(a * b) = c; これを展開すると、const Rational (a * b) = Rational c となりエラー。

正直こんなのどうでもいいと思うが