return a + b is transformed by automatic semicolon insertion into the following:
return; a + b;
The source
a = b + c (d + e).print()
is not transformed by automatic semicolon insertion, because the parenthesised expression that begins the second line can be interpreted as an argument list for a function call: