It doesn’t make sense to do so from the code execution perspective, however from the project perspective “always use weak captures in closures“ can be a useful generalization
It’s better to have redundant weak captures than memory leaks
It’s better to have thoughtfully written code than redundant weak captures
Maybe for some folks thoughtfully written code is not an option and it’s fine
It makes no sense, but a large number of Swift developers are under the mistaken impression that [weak self] is a reasonable default, and some even (regrettably, imho) require it using linters or other tooling.
The closure still holds a strong reference to self during execution because of the guard statement. So I think the explicit weak capture is ambiguous and confusing.
EDIT: on a second thought this isn't a valid reason because it's true in those scenarios that requires weak capture too.