Thank you for your comments,

In my experience, 99.9% of the time I don't want to do_something_else() before I want to await do_something().

I could as well change this code:

  foo.bar

To:

  foo.__getattribute__('bar')

This would signal that I'm calling the __getattribute__ function.

But the reason I'm not doing that is because well, it's not convenient for me, but also I don't really care what happens, I just want the bar attribute of foo when I call foo.bar

In the same fashion, when I call result = test(), I don't really care about lower level details, I just want the result of calling the test function.

How to refute that comparaison ?

--