Since there are no other hints, like close braces, the only thing we can be guided by is the indent level of the preceding code lines (which are non-empty). There's a behavior going on here that you may not be aware of.
To wit:
Using your example, at the end of the otherwise() line, hit <Enter> twice. You'll get the blank line, yet the cursor will still be at the start of otherwise(), in column 5. Now press Shift+Tab to unindent, and you'll be back at col #1. Type moreCode() and press <Enter>.
Now the strange part is that you may be thinking that not pressing Shift+Tab (to get to col #1) in the blank separator line means that there are now 4 extraneous spaces in that blank line. But there aren't. They've been stripped out. If you look at this in hex view you'll see that there are only line-break sequences between the end of otherwise() and the start of moreCode().
So the bottom line is that once you've done a Shift+Tab to unindent, only the presence of non-blank text will make that indent "take".