### Godot version

4.1 stable

### System information

Windows 11 64bit

### Issue description

A dynamic `NavigationObstacle2D` with radius > 0 is not displayed properly in editor when setting it to a position other than the origin. The center of the avoidance circle is not at the correct position after switching scenes or hiding/showing the obstacle.

It looks like some transform is applied twice.

### Steps to reproduce

- create an empty 2D scene
- add a `NavigationObstacle2D` and change it's radius to something greater zero
- set it to a position other than the origin
- hide and show the obstacle or switch to another scene and back
- observe that the center of the avoidance circle is not longer at the correct position

### Minimal reproduction project

-
if (avoidance_enabled == p_enabled) {
		return;
	}
	avoidance_enabled = p_enabled;
	NavigationServer2D::get_singleton()->obstacle_set_avoidance_enabled(obstacle, avoidance_enabled);
}
bool NavigationObstacle2D::get_avoidance_enabled() const {
	return avoidance_enabled;
}
void NavigationObstacle2D::set_velocity(const Vector2 p_velocity) {
	velocity = p_velocity;
	velocity_submitted = true;
}
void NavigationObstacle2D::_update_map(RID p_map) {
	map_current = p_map;
	NavigationServer2D::get_singleton()->obstacle_set_map(obstacle, p_map);
}
void NavigationObstacle2D::_update_position(const Vector2 p_position) {
	NavigationServer2D::get_singleton()->obstacle_set_position(obstacle, p_position);
}
#ifdef DEBUG_ENABLED
void NavigationObstacle2D::_update_fake_agent_radius_debug() {
	if (radius > 0.0 && NavigationServer2D::get_singleton()->get_debug_navigation_avoidance_enable_obstacles_radius()) {
		Color debug_radius_color = NavigationServer2D::get_singleton()->get_debug_navigation_avoidance_obstacles_radius_color();
		draw_circle(get_global_transform().get_origin(), radius, debug_radius_color);
	}
}
#endif 
#ifdef DEBUG_ENABLED
void NavigationObstacle2D::_update_static_obstacle_debug() {