### Godot version

4.0 rc1

### System information

Arch Linux

### Issue description

according to the docs:
"Controls whether the camera can be active or not. If true, the Camera2D will become the main camera when it enters the scene tree and there is no active camera currently (see Viewport.get_camera_2d())."

This is not the case if entering the scene tree happens as a result of `void reparent(new_parent: Node, keep_global_transform: bool = true)`... _or reparenting manually for that matter_. It seems to work as expected when entering the tree when the scene first loads, but doesn't function properly after that point. It also seems that adding new cameras works as expected. It just seems to be that the current camera is not actually defined by an enabled camera entering the tree... but actually entering the tree for the **first time**. It may be that some code that is supposed to run upon `_enter_tree()` isn't actually being run where it is supposed to be?

This seems to be related to the changes made in https://github.com/godotengine/godot/pull/72550

This can be worked around with a call to `make_current.call_deferred()`

### Steps to reproduce

add a camera2D to a scene
set your camera to "enabled"
allow your camera to become the current camera, by it being enabled and it entering the scene tree upon loading the scene
reparent the camera
note that the current camera is now the default one used when  `get_viewport().get_camera2d() == null`, not the camera you created

### Minimal reproduction project

the attached project includes a sample scene with a camera and two parents that the camera will swap between. (the godot icon, and an upside down godot icon)

- pressing `ui_left` will reparent the camera (not keeping its global transform so you can see it is being reparented)

- pressing `ui_right` will reparent the camera with a `make_current.call_deferred()` work around

- pressing `ui_up` will set the camera to `enabled = true`, which will make the camera current again, despite it was **already enabled**, and is in fact the only camera, with some console output to prove it. This only works if you do this  outside of the frame where the camera is reparented, either by doing it in another frame or by deferring the call (the same as `make_current()`).

- pressing `ui_down` will create a new camera that is effectively a copy of the camera that should be current but isn't, showing that the new camera does in fact become current upon entering the tree for the first time. Additionally to ensure this new camera is the only one, the old camera will call `queue_free()`

additionally, some text is printed to the console showing the id of the camera created in the scene, what the value of `enabled` and `get_viewport().get_camera2d()` is before and after certain actions, and lets you know when the camera enters the tree.

[camera_reparent.zip](https://github.com/godotengine/godot/files/10702761/camera_reparent.zip)
ClassDB::bind_method(D_METHOD("set_offset", "offset"), &Camera2D::set_offset);
	ClassDB::bind_method(D_METHOD("get_offset"), &Camera2D::get_offset);
	ClassDB::bind_method(D_METHOD("set_anchor_mode", "anchor_mode"), &Camera2D::set_anchor_mode);
	ClassDB::bind_method(D_METHOD("get_anchor_mode"), &Camera2D::get_anchor_mode);
	ClassDB::bind_method(D_METHOD("set_ignore_rotation", "ignore"), &Camera2D::set_ignore_rotation);
	ClassDB::bind_method(D_METHOD("is_ignoring_rotation"), &Camera2D::is_ignoring_rotation);
	ClassDB::bind_method(D_METHOD("_update_scroll"), &Camera2D::_update_scroll);
	ClassDB::bind_method(D_METHOD("set_process_callback", "mode"), &Camera2D::set_process_callback);
	ClassDB::bind_method(D_METHOD("get_process_callback"), &Camera2D::get_process_callback);
	ClassDB::bind_method(D_METHOD("set_enabled", "enabled"), &Camera2D::set_enabled);
	ClassDB::bind_method(D_METHOD("is_enabled"), &Camera2D::is_enabled);
	ClassDB::bind_method(D_METHOD("make_current"), &Camera2D::make_current);
	ClassDB::bind_method(D_METHOD("is_current"), &Camera2D::is_current);
	ClassDB::bind_method(D_METHOD("_make_current"), &Camera2D::_make_current);
	ClassDB::bind_method(D_METHOD("set_limit", "margin", "limit"), &Camera2D::set_limit);
	ClassDB::bind_method(D_METHOD("get_limit", "margin"), &Camera2D::get_limit);
	ClassDB::bind_method(D_METHOD("set_limit_smoothing_enabled", "limit_smoothing_enabled"), &Camera2D::set_limit_smoothing_enabled);
	ClassDB::bind_method(D_METHOD("is_limit_smoothing_enabled"), &Camera2D::is_limit_smoothing_enabled);
	ClassDB::bind_method(D_METHOD("set_drag_vertical_enabled", "enabled"), &Camera2D::set_drag_vertical_enabled);
	ClassDB::bind_method(D_METHOD("is_drag_vertical_enabled"), &Camera2D::is_drag_vertical_enabled);
	ClassDB::bind_method(D_METHOD("set_drag_horizontal_enabled", "enabled"), &Camera2D::set_drag_horizontal_enabled);
	ClassDB::bind_method(D_METHOD("is_drag_horizontal_enabled"), &Camera2D::is_drag_horizontal_enabled);
	ClassDB::bind_method(D_METHOD("set_drag_vertical_offset", "offset"), &Camera2D::set_drag_vertical_offset);
	ClassDB::bind_method(D_METHOD("get_drag_vertical_offset"), &Camera2D::get_drag_vertical_offset);
	ClassDB::bind_method(D_METHOD("set_drag_horizontal_offset", "offset"), &Camera2D::set_drag_horizontal_offset);
	ClassDB::bind_method(D_METHOD("get_drag_horizontal_offset"), &Camera2D::get_drag_horizontal_offset);
	ClassDB::bind_method(D_METHOD("set_drag_margin", "margin", "drag_margin"), &Camera2D::set_drag_margin);
	ClassDB::bind_method(D_METHOD("get_drag_margin", "margin"), &Camera2D::get_drag_margin);
	ClassDB::bind_method(D_METHOD("get_target_position"), &Camera2D::get_camera_position);
	ClassDB::bind_method(D_METHOD("get_screen_center_position"), &Camera2D::get_camera_screen_center);