### Godot version

v4.0.beta11.official [91713ced8]

### System information

macOS 13.1

### Issue description

When using a function with a return type of `void` as the return value of another function with a return type of `void`, the following error occurs: 
> Cannot get return value of call to "foo()" because it returns "void"

This wasn't a problem in Godot 3.x and Godot 4.x until now. Seems it's related to https://github.com/godotengine/godot/pull/70702. 

I understand why this is happening, but I'd expect to be able to use functions like this that return `void` because they both use the matching return type. It seems overly strict.

In a real world example I use this to return early when switching states in a FSM:

```gdscript
func _process(_delta: float) -> void:
  if player.is_grounded():
    return state_machine.transition_to("ground") # returns void

  if player.is_on_wall():
    return state_machine.transition_to("wall") # returns void
```

### Steps to reproduce

```gdscript
extends Node

func foo() -> void:
	print("hello")

func _ready() -> void:
	return foo()
```

### Minimal reproduction project

[godot_4_return_value_regression.zip](https://github.com/godotengine/godot/files/10385377/godot_4_return_value_regression.zip)

if (call->arguments.size() < 1) {
					push_error(R"*(Invalid call for "range()" function. Expected at least 1 argument, none given.)*", call->callee);
				} else if (call->arguments.size() > 3) {
					push_error(vformat(R"*(Invalid call for "range()" function. Expected at most 3 arguments, %d given.)*", call->arguments.size()), call->callee);
				} else {
					
					bool all_is_constant = true;
					Vector<Variant> args;
					args.resize(call->arguments.size());
					for (int i = 0; i < call->arguments.size(); i++) {
						reduce_expression(call->arguments[i]);
						if (!call->arguments[i]->is_constant) {
							all_is_constant = false;
						} else if (all_is_constant) {
							args.write[i] = call->arguments[i]->reduced_value;
						}
						GDScriptParser::DataType arg_type = call->arguments[i]->get_datatype();
						if (!arg_type.is_variant()) {
							if (arg_type.kind != GDScriptParser::DataType::BUILTIN) {
								all_is_constant = false;
								push_error(vformat(R"*(Invalid argument for "range()" call. Argument %d should be int or float but "%s" was given.)*", i + 1, arg_type.to_string()), call->arguments[i]);
							} else if (arg_type.builtin_type != Variant::INT && arg_type.builtin_type != Variant::FLOAT) {
								all_is_constant = false;
								push_error(vformat(R"*(Invalid argument for "range()" call. Argument %d should be int or float but "%s" was given.)*", i + 1, arg_type.to_string()), call->arguments[i]);
							}
						}
					}
					Variant reduced;
					if (all_is_constant) {
						switch (args.size()) {