I guess it's explicitly mentioned in the Detailed design section:
Any reference to a variable that was declared in an
async let
is a potential suspension point, equivalent to a call to an asynchronous function, so it must occur within anawait
expression. The initializer of theasync let
is considered to be enclosed by an implicitawait
expression.
The answer is: await
is implicit when using async let
and it isn't when using group.add
(at the moment at least).