### Godot version

4.0.dev.d1e5903c67956707948b1de370b807e3aad395b7

### System information

macOS 13.1

### Issue description

Script classes are not regenerated project-wide after first import. See the reproduction steps below.

This is a huge problem for large games since a class may not have all of its dependencies ready by the time it comes to parsing the script, so it doesn't get registered on the first pass, and there are no other passes. The only solution is to manually open every single script and save it (potentially multiple times if there are long dependency chains).

The symptom is happening as of #70557, but the root cause was still present before that PR. If I revert that PR, open the reproduction project, and then instead of deleting the below file I empty out the `_global_script_class*` members, A and B do not regenerate (but they do if you open and save them). This has become a serious regression because the class list is no longer saved to version control, so you can end up in a situation where deleting `.godot/` results in a broken project until you manually open and save every script (for every developer, every time they delete `.godot/`).

### Steps to reproduce

1. Download an open the below minimal reproduction project.
2. Look at the generated `.godot/global_script_class_cache.cfg` file. Both A and B will be in there (good).
3. Close Godot and delete this file.
4. Open Godot again.
5. Look at the lack of a `.godot/global_script_class_cache.cfg` file. It is not regenerated (bad).
6. Open the `a.gd` script and save it.
7. Look at the generated `.godot/global_script_class_cache.cfg` file. Only A will be in there, but B will not (bad).

### Minimal reproduction project

[GlobalClassMissing.zip](https://github.com/godotengine/godot/files/10515105/GlobalClassMissing.zip)

static ScriptLanguage *get_language(int p_idx);
	static void register_language(ScriptLanguage *p_language);
	static void unregister_language(const ScriptLanguage *p_language);
	static void set_reload_scripts_on_save(bool p_enable);
	static bool is_reload_scripts_on_save_enabled();
	static void thread_enter();
	static void thread_exit();
	static void global_classes_clear();
	static void add_global_class(const StringName &p_class, const StringName &p_base, const StringName &p_language, const String &p_path);
	static void remove_global_class(const StringName &p_class);
	static void remove_global_class_by_path(const String &p_path);
	static bool is_global_class(const StringName &p_class);
	static StringName get_global_class_language(const StringName &p_class);
	static String get_global_class_path(const String &p_class);
	static StringName get_global_class_base(const String &p_class);
	static StringName get_global_class_native_base(const String &p_class);
	static void get_global_class_list(List<StringName> *r_global_classes);
	static void get_inheriters_list(const StringName &p_base_type, List<StringName> *r_classes);
	static void save_global_classes();
	static void init_languages();
	static void finish_languages();
	static bool are_languages_finished() { return languages_finished; }
};
class ScriptInstance;