### Godot version

4.0 stable

### System information

Windows 10

### Issue description

Running .clear() on a TileMap with Scene tiles leaves the tiles in place, as though nothing happened.

This appears to be the same issue as raised in [#69596](https://github.com/godotengine/godot/issues/69596), [#72456](https://github.com/godotengine/godot/pull/72456), and [67330](https://github.com/godotengine/godot/pull/67330). None of the previous issues seem to have presented a fix for this issue besides running some dummy operations on the TileMap, which have not had any effect for me.

Manually running queue_free() on each tile scene doesn't work, presumably since they are being cached. And running a dummy operation on the TileMap doesn't have any impact to speak of.

Not sure how to proceed, or if it's just impossible to remove Scene tiles once they're created.

### Steps to reproduce

The minimal reproduction project has a TileMap with several simple scene tiles. The attached script attempts to .clear() the TileMap when the user presses Enter, demonstrating my issue.

### Minimal reproduction project

[TileMapMinimumRecreationProject.zip](https://github.com/godotengine/godot/files/10959111/TileMapMinimumRecreationProject.zip)

continue;
				}
				TileSetAtlasSource *atlas_source = Object::cast_to<TileSetAtlasSource>(source);
				if (atlas_source) {
					const TileData *tile_data;
					if (q.runtime_tile_data_cache.has(E_cell)) {
						tile_data = q.runtime_tile_data_cache[E_cell];
					} else {
						tile_data = atlas_source->get_tile_data(c.get_atlas_coords(), c.alternative_tile);
					}
					for (int tile_set_physics_layer = 0; tile_set_physics_layer < tile_set->get_physics_layers_count(); tile_set_physics_layer++) {
						Ref<PhysicsMaterial> physics_material = tile_set->get_physics_layer_physics_material(tile_set_physics_layer);
						uint32_t physics_layer = tile_set->get_physics_layer_collision_layer(tile_set_physics_layer);
						uint32_t physics_mask = tile_set->get_physics_layer_collision_mask(tile_set_physics_layer);
						
						RID body = ps->body_create();
						bodies_coords[body] = E_cell;
						ps->body_set_mode(body, tile_map_node->is_collision_animatable() ? PhysicsServer2D::BODY_MODE_KINEMATIC : PhysicsServer2D::BODY_MODE_STATIC);
						ps->body_set_space(body, space);
						Transform2D xform;
						xform.set_origin(tile_map_node->map_to_local(E_cell));
						xform = gl_transform * xform;
						ps->body_set_state(body, PhysicsServer2D::BODY_STATE_TRANSFORM, xform);
						ps->body_attach_object_instance_id(body, tile_map_node->get_instance_id());
						ps->body_set_collision_layer(body, physics_layer);
						ps->body_set_collision_mask(body, physics_mask);
						ps->body_set_pickable(body, false);
						ps->body_set_state(body, PhysicsServer2D::BODY_STATE_LINEAR_VELOCITY, tile_data->get_constant_linear_velocity(tile_set_physics_layer));
						ps->body_set_state(body, PhysicsServer2D::BODY_STATE_ANGULAR_VELOCITY, tile_data->get_constant_angular_velocity(tile_set_physics_layer));
						if (!physics_material.is_valid()) {