### Godot version

4.0.2.stable, 4.0.3.stable

### System information

Win10, i7-10870H, Intel UHD Graphics / GeForce RTX 3060 Laptop(31.0.15.3203)

### Issue description

In Compatibility mode Control nodes (tested Label, Button, LineEdit, RichTextLabel, probably others) with imported Font with LCD subpixel antialiasing enabled messes up non-standard font-color if there is Control with default font (or non LCD subpixel antialiased) present. It also somehow depends on node hierarchy and which nodes are currently visible.

https://github.com/godotengine/godot/assets/8860283/484f6479-7866-4f14-9071-06dccd539d80



### Steps to reproduce

1. import any font and enable LCD subpixel antialiasing for it;
2. Create at least 1 control with text with this font and at least 1 for default or non-LCDspa so that LCDspa font precedes non-LCDspa one in hierarchy;
3. Change default color for LCDspa font;
4. Move around so that you see only LCDspa node or both and observe unintended color change;
5. (optional) other LCDspa node positioned after non-LCDspa in hierarchy prevents color change when visible.

### Minimal reproduction project

[LCD_Subpixel_n_ColorRect_antialiasing_bug.zip](https://github.com/godotengine/godot/files/11556585/LCD_Subpixel_n_ColorRect_antialiasing_bug.zip)

instance = instance->next;
				continue;
			}
			Transform2D modelview = p_light_xform * instance->xform_cache;
			shadow_render.shader.version_set_uniform(CanvasOcclusionShaderGLES3::MODELVIEW1, modelview.columns[0][0], modelview.columns[1][0], 0, modelview.columns[2][0], shadow_render.shader_version, variant);
			shadow_render.shader.version_set_uniform(CanvasOcclusionShaderGLES3::MODELVIEW2, modelview.columns[0][1], modelview.columns[1][1], 0, modelview.columns[2][1], shadow_render.shader_version, variant);
			if (co->cull_mode != cull_mode) {
				if (co->cull_mode == RS::CANVAS_OCCLUDER_POLYGON_CULL_DISABLED) {
					glDisable(GL_CULL_FACE);
				} else {
					if (cull_mode == RS::CANVAS_OCCLUDER_POLYGON_CULL_DISABLED) {
						
						glEnable(GL_CULL_FACE);
					}
					glCullFace(co->cull_mode == RS::CANVAS_OCCLUDER_POLYGON_CULL_CLOCKWISE ? GL_FRONT : GL_BACK);
				}
				cull_mode = co->cull_mode;
			}
			glBindVertexArray(co->vertex_array);
			glDrawElements(GL_TRIANGLES, 3 * co->line_point_count, GL_UNSIGNED_SHORT, 0);
			instance = instance->next;
		}
	}
	glBindVertexArray(0);
	glBindFramebuffer(GL_FRAMEBUFFER, 0);
	glDepthMask(GL_FALSE);
	glDisable(GL_DEPTH_TEST);
	glDisable(GL_SCISSOR_TEST);
}
void RasterizerCanvasGLES3::light_update_directional_shadow(RID p_rid, int p_shadow_index, const Transform2D &p_light_xform, int p_light_mask, float p_cull_distance, const Rect2 &p_clip_rect, LightOccluderInstance *p_occluders) {