独習C++ より愛を込めて,sometype &sometype::operator=(sometype &obj)

牛歩作戦で,独習C++ をやっているわけですが,
以下のコードが気になったので。

class sometype {
private:
  int i;
  // ...
};

sometype &sometype::operator=(sometype &obj)
{
  this->i = obj.i; // ...(1)
  return *this;
}

と,パチパチと写経していたわけですが,(1) の部分で,ほえ?
と思ったです。
「obj.i」で,private なメンバにアクセスできるんですね。
いや,this 経由,つまり,メンバ関数を呼び出したオブジェクトの
private なメンバにはアクセスできるのは納得できるのですが,
引数のオブジェクトのメンバにアクセスできるのにちと違和感を覚えたわけです。