演算子のプロトコルについて
例えば、あるクラスでAプロトコルを採用した場合、  
プロトコルの宣言内容に沿って、  
クラスの内にインスタンスメソッド・プロパティ等を定義します。

しかし演算子のプロトコル（例えば、Equatable, Comparableなど）を採用した場合、  
定義は、グローバル関数として実装します。

なにか仕様的に矛盾している感じがあり、理解できません。

演算子のプロトコルを採用した場合、実装がグローバル関数でよいのか、教えてください。
一般のプロトコルは、そのクラスに「機能」を付加したい時に使うのでクラス内で実装を行いますが、演算子は、そのクラスと別の何か(同じクラスかもしれないし別のクラスかもしれない)との「関係」を付加したい時に使うので、そのクラスの外で定義した方が自然ではないでしょうか。
一般のプロトコルは、そのクラスに「機能」を付加したい時に使うのでクラス内で実装を行いますが、演算子は、そのクラスと別の何か(同じクラスかもしれないし別のクラスかもしれない)との「関係」を付加したい時に使うので、そのクラスの外で定義した方が自然ではないでしょうか。