> 基底から継承しないクラスはあると思いますか?
まずObjectがある.それからRubyにはClassとクラスメソッドがあるため
継承は >>407 が思っているよりずっと複雑かもしれない.例えば,
 オブジェクトoの特異クラスの特異クラスのスーパークラスは,
 オブジェクトoの特異クラスのスーパークラスの特異クラスに必ずしも一致しない.
例えば
 オブジェクトoの特異クラスsの特異クラスの特異クラスのスーパークラスは,
 オブジェクトoの特異クラスsの特異クラスのスーパークラスの特異クラスではない.
これは
 クラスkの特異クラスの特異クラスのスーパークラスが,
 クラスkの特異クラスのスーパークラスの特異クラスに一致しないことによるようだ.
ただし
 クラスkの特異クラスのスーパークラスは
 クラスkのスーパークラスの特異クラスに一致する.
class Object; def s;class<<self;self;end; end; end; # 特異クラス
o = Object.new ; p o.s.s.superclass == o.s.superclass.s #=> true
s = Object.new.s ; p s.s.s.superclass == s.s.superclass.s #=> false
k = Class.new ; p k.s.s.superclass == k.s.superclass.s #=> false
p k.s.superclass == k.superclass.s #=> true

> 上位クラスのメソッドを機能拡張のため設計を無視しコードレベルで勝手に
> オーバーライドしてよいのですか?
設計を無視するのは良くない.だが設計を無視せずに再定義するのは構わないだろう.
いずれにせよRubyに限らずほとんどの再定義は利用者の責任において勝手に行なわれる.
それがいやなら上位のクラスの提供者はフックと文書で再定義を禁止するべきだ.