### Godot version

4.2

### System information

Godot v4.2.stable - Windows 10.0.19045 - Vulkan (Mobile) - dedicated AMD Radeon RX 6700 XT (Advanced Micro Devices, Inc.; 31.0.21001.45002) - AMD Ryzen 5 3600 6-Core Processor (12 Threads)

### Issue description

Tiles with light occluders still show shadows, when replacing them by code (set_cell) with a not occluding tile.
This does not happen when they are replaced with an empty cell (cell_id = -1) or erase_cell.

### Steps to reproduce

Make a new project with a Tilemap2D and a PointLight2D
Make 2 Tiles: One with an occluder and one without
Make the tiles placed by code.
Replace an occluding tile with a non occluding

### Minimal reproduction project

[TestForTilemap.zip](https://github.com/godotengine/godot/files/13539067/TestForTilemap.zip)

const Ref<TileSet> &tile_set = tile_map_node->get_tileset();
	TileMapCell &c = r_cell_data.cell;
	TileSetSource *source;
	if (tile_set->has_source(c.source_id)) {
		source = *tile_set->get_source(c.source_id);
		if (source->has_tile(c.get_atlas_coords()) && source->has_alternative_tile(c.get_atlas_coords(), c.alternative_tile)) {
			TileSetAtlasSource *atlas_source = Object::cast_to<TileSetAtlasSource>(source);
			if (atlas_source) {
				bool ret = false;
				if (tile_map_node->GDVIRTUAL_CALL(_use_tile_data_runtime_update, layer_index_in_tile_map_node, r_cell_data.coords, ret) && ret) {
					TileData *tile_data = atlas_source->get_tile_data(c.get_atlas_coords(), c.alternative_tile);
					
					TileData *tile_data_runtime_use = tile_data->duplicate();
					tile_data_runtime_use->set_allow_transform(true);
					r_cell_data.runtime_tile_data_cache = tile_data_runtime_use;
					tile_map_node->GDVIRTUAL_CALL(_tile_data_runtime_update, layer_index_in_tile_map_node, r_cell_data.coords, tile_data_runtime_use);
					if (p_auto_add_to_dirty_list) {
						dirty.cell_list.add(&r_cell_data.dirty_list_element);
					}
				}
			}
		}
	}
}
void TileMapLayer::_clear_runtime_update_tile_data() {