例えばLISPの構文はRubyやJavaだとかの構文木を
S式で記述したものと見なすことができる。
以下の式をLISPに変換するとして
object.a.b.c(1 2);
この各演算子をS式の構文木として素直に変換するなら
(method-call (member-ref (member-ref object :a) :b) :c 1 2)
のようになると思う。

これをCLOSの流儀に従って
(c (slot-ref (slot-ref object :a) :b) 1 2)
というように、cを総称関数としてわざわざ定義する必然性は無い。
むしろcは単にメソッド呼び出しである、という標識があれば良いので、
前者と同様にslot-refと同じ形式でmethod-callを定義しても良いだろう。
こういった流儀ならば114からの流れで出てきた制限はなくなるかもしれない。