Не имеет смысла, если p->m был просто синтаксическим сахаром для (*p).m? По существу, каждый operator->, который я когда-либо писал, мог быть реализован следующим образом:
Foo::Foo* operator->()
{
return &**this;
}
Есть ли случай, когда я хотел бы, чтобы p->m означал что-то еще, чем (*p).m?