On Thu, Mar 5, 2020 at 12:29 PM J Decker via Std-Proposals <std-proposals@lists.isocpp.org> wrote:
[...]
Smart pointers were given as an example.

Smart pointers continue to work as they do, because they are an object that contains a pointer to an object, and are not 'pointers'. they are of a class type 'smart pointer', they are not pointers to a class of type 'smart pointer'.

I provided examples, in this list and updated in the gist, of how pointer to smart pointers can still work, and actually '.' operator which can perform indirection can simplify that use case by still just being 'access property of pointer'.
 
Here's an example:

std::shared_ptr<Foo> p = ...; 
std::cout << p.unique() << '\n';

Does call a function on shared_ptr<> or on Foo?
(hint: unique() used to exist on shared_ptr, was deprecated in C++17 and removed in C++20)

If I understand your proposal correctly, it would break the feature of this code failing to compile in C++20.

Perhaps more importantly, if there are ever *new* member functions added to shared_ptr<> in a future version of C++, that would case similar kinds of breaking of code.

--
Arvid Norberg