Warum kann der Bediener-> manuell überlastet werden?

Wäre es nicht sinnvoll, wennp->m war nur syntaktischer Zucker für(*p).m? Im Wesentlichen jedesoperator->, das ich jemals geschrieben habe, hätte folgendermaßen implementiert werden können:

Foo::Foo* operator->()
{
    return &**this;
}

Gibt es einen Fall, in dem ich @ wollen würp->m um etwas anderes als @ zu bedeut(*p).m?