Ruby の落とし穴: 実は and と or の優先順位が一緒

こんなん今の今まで知らんかったわ。

irb> true || true &&  false    #=> true
irb> true or true and false    #=> false

irb> true || false &&  false   #=> true
irb> true or false and false   #=> false

まじですかー! 何やねん、これ。

マニュアル見ると、and と or の優先順位が一緒だった。つまり '&&' > '||' なのに 'and' == 'or' ですよ。
これに基づくと、上のはこう解釈されていることになる。

irb> true || (true && false)     #=> true
irb> (true or true) and false    #=> false

irb> true || (false && false)    #=> true
irb> (true or false) and false   #=> false

なるほどねー。

しかし、なんでこんな仕様なんだろ。どっちでもいいっちゃいいんだけど、理由あるんかな。