Let's not get sidetracked about guard. It isn't return "every single time". Sometimes it's break or continue or fallthrough or throw.
This has been discussed other places, such as:
Inferred return for guard statement
An implicit return for guard
Proposal: Add implicit/default else-behaviour for the guard statement
No need to repeat all that here, right?