次のように、tempfile に M というモジュールを extend した場合、
M === tempfile になりません。

ただし、tempfile.kind_of? M は真になります。

=== と kind_of? で異なるのは一貫していないのでは無いでしょうか。

% ./ruby -v -rtempfile -e '
tempfile = Tempfile.new("z")
module M
end
tempfile.extend M

p M === tempfile
p tempfile.kind_of?(M)
'
ruby 1.9.0 (2005-09-06) [i686-linux]
false
true
-- 
[田中 哲][たなか あきら][Tanaka Akira]