>>517=520
リファレンスマニュアルをよく読めと言いたいところだが、確かにズバリ明記
されているわけではないな。 Ruby の本を読むと大概説明してあるんだが……。

b << "b" は b が参照するオブジェクトを破壊的に変更する。 a = b だから
a と b は参照先のオブジェクトが同じ。ゆえに a も変更される。

b += "b" にしてみたり、 object_id メソッドを使って調べてみたりするといい。