Scala _does_ execute finally after the function return if it's the last expression in the body, so the control flow will be unchanged here. (Just tested it to confirm; `val x = try { 3 } finally { 4 }` produces 3 (and a warning about 4 not doing anything).)