I actually agree with your statement "I consider an interpreter that can figure things out on your behalf to be a more intelligent interpreter" -- I'm not arguing against smart interpreters. I'm merely arguing against semicolon insertion which is actually an incredibly dumb way of handling this situation.
So semicolon insertion is just a hack that happens before parsing. It's not that the semicolons are optional, they aren't, but it puts them in automatically according to a set of rules. Unfortunately that means you can't just put a return on a line by itself -- a semicolon will always be inserted.