### Godot version

v4.0.beta13.official [caacade56]

### System information

Windows 8.1

### Issue description

The `Unreachable code (statement after return) in function 'function_name()'` warning is given for functions that do not have unreachable code. The same code does not give this warning in v3.5.stable.official [991bb6ac7].

### Steps to reproduce

```
func warning(i: int) -> void:
  if i == 0:
    pass
  elif i == 1:
    return
  else:
    return
  print("yeah")
```

Removing either the `elif` or the `else` removes the warning.

### Minimal reproduction project

N/A; code in reproduction steps can be placed in any blank gdscript file to trigger the error.
int begin_scan = String("@tutorial").length();
			if (begin_scan >= stripped_line.length()) {
				continue; 
			}
			if (stripped_line[begin_scan] == ':') { 
				
				title = "";
				link = stripped_line.trim_prefix("@tutorial:").strip_edges();
			} else {
				/* Syntax:
				 *   @tutorial ( The Title Here )         :         https://the.url/
				 *             ^ open           ^ close   ^ colon   ^ url
				 */
				int open_bracket_pos = begin_scan, close_bracket_pos = 0;
				while (open_bracket_pos < stripped_line.length() && (stripped_line[open_bracket_pos] == ' ' || stripped_line[open_bracket_pos] == '\t')) {
					open_bracket_pos++;
				}
				if (open_bracket_pos == stripped_line.length() || stripped_line[open_bracket_pos++] != '(') {
					continue; 
				}
				close_bracket_pos = open_bracket_pos;
				while (close_bracket_pos < stripped_line.length() && stripped_line[close_bracket_pos] != ')') {
					close_bracket_pos++;
				}
				if (close_bracket_pos == stripped_line.length()) {
					continue; 
				}
				int colon_pos = close_bracket_pos + 1;
				while (colon_pos < stripped_line.length() && (stripped_line[colon_pos] == ' ' || stripped_line[colon_pos] == '\t')) {
					colon_pos++;