Hi,
My first feeling is this is too drastic of a change in terms of language ergonomics. Perhaps, if you word it a bit differently it would fit a bit better with the rest of the language.
For example, instead of using the "inline" keyword as a placeholder to "whatever is passed after ->", you could make the syntactic sugar to just generate a lambda.
Such that:
v->Init();
would be transformed by the compiler into
v.operator->( [&] (auto& arg) { arg.Init(); } );
By doing so, all you need is the ability to pass more arguments to the operator-> (today it's forbidden).
That might still be a big stretch, but it seems to me it would be more reasonable.
Best Regards,
Breno G.