### 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)

Variant get_setting(const String &p_setting, const Variant &p_default_value = Variant()) const;
	Array get_global_class_list();
	void store_global_class_list(const Array &p_classes);
	bool has_setting(String p_var) const;
	String localize_path(const String &p_path) const;
	String globalize_path(const String &p_path) const;
	void set_initial_value(const String &p_name, const Variant &p_value);
	void set_as_basic(const String &p_name, bool p_basic);
	void set_as_internal(const String &p_name, bool p_internal);
	void set_restart_if_changed(const String &p_name, bool p_restart);
	void set_ignore_value_in_docs(const String &p_name, bool p_ignore);
	bool get_ignore_value_in_docs(const String &p_name) const;
	String get_project_data_dir_name() const;
	String get_project_data_path() const;
	String get_resource_path() const;
	String get_safe_project_name() const;
	String get_imported_files_path() const;
	static ProjectSettings *get_singleton();
	void clear(const String &p_name);
	int get_order(const String &p_name) const;
	void set_order(const String &p_name, int p_order);
	void set_builtin_order(const String &p_name);
	bool is_builtin_setting(const String &p_name) const;
	Error setup(const String &p_path, const String &p_main_pack, bool p_upwards = false, bool p_ignore_override = false);
	Error load_custom(const String &p_path);
	Error save_custom(const String &p_path = "", const CustomMap &p_custom = CustomMap(), const Vector<String> &p_custom_features = Vector<String>(), bool p_merge_with_current = true);
	Error save();
	void set_custom_property_info(const PropertyInfo &p_info);
	const HashMap<StringName, PropertyInfo> &get_custom_property_info() const;
	uint64_t get_last_saved_time() { return last_save_time; }