>>686 先の例で言えば、implementsを使わなければこーなります。

type
 TMyControl = class(TWinControl, IObservable)
  FObservable: IObservable;
  procedure AddObserver(const A: IObserver);
  procedure RemoveObserver(const A: IObserver);
 end;

procedure TMyControl.AddObserver(const A: IObserver);
begin
 FObservable.AddObserver(A)
end;
procedure TMyControl.RemoveObserver(const A: IObserver);
begin
 FObservable.RemoveObserver(A)
end;

インターフェースを使わなければ、TMyControl.AsObservableのようなプロパティを公開して、
「使う側の箇所で XXX . AsObservable と書いて使ってもらう」ことになると思いますが、
インターフェースを使いだすと、何でもかんでも機能はasで問い合わせればいいようになるので、
覚えることが減りますし、多態もやりやすくなります。
で、その時implementsが無ければ、このような横流しだけのメソッドを大量に書く羽目になり、数が増えてくると面倒である、というわけ。
はじめから多重継承できればこんなまどろっこしい事しなくていいんですが、
先に述べた様に全てをTObjectから継承するモデルと多重継承は噛み合いませんし、委任先を後で交換できるメリットも。

…以上わたくしの理解なんですが、絶対の自信があるわけでもなく、いい機会なので突っ込みを入れてもらう事にしましょう(^_^