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