### Godot version

4.2.dev [202e4b2]

### System information

N/A

### Issue description

Changing the property `vertical_alignment` in a `Label` still changes the position of the letters, even if said `Label` is at its minimum size, implying that it could be shrunk further:
![image](https://github.com/godotengine/godot/assets/30739239/7fdd87bd-53b1-4397-8594-1ee4e5efbcf5)

### Steps to reproduce

Create a `Label` node, type anything in it, and the `vertical_alignment` property.

### Minimal reproduction project

N/A, trivially reproducible.
}
		autowrap_flags = autowrap_flags | TextServer::BREAK_TRIM_EDGE_SPACES;
		PackedInt32Array line_breaks = TS->shaped_text_get_line_breaks(text_rid, width, 0, autowrap_flags);
		for (int i = 0; i < line_breaks.size(); i = i + 2) {
			RID line = TS->shaped_text_substr(text_rid, line_breaks[i], line_breaks[i + 1] - line_breaks[i]);
			if (!tab_stops.is_empty()) {
				TS->shaped_text_tab_align(line, tab_stops);
			}
			lines_rid.push_back(line);
		}
	}
	if (xl_text.length() == 0) {
		minsize = Size2(1, get_line_height());
		return;
	}
	if (autowrap_mode == TextServer::AUTOWRAP_OFF) {
		minsize.width = 0.0f;
		for (int i = 0; i < lines_rid.size(); i++) {
			if (minsize.width < TS->shaped_text_get_size(lines_rid[i]).x) {
				minsize.width = TS->shaped_text_get_size(lines_rid[i]).x;
			}
		}
	}
	if (lines_dirty) {
		BitField<TextServer::TextOverrunFlag> overrun_flags = TextServer::OVERRUN_NO_TRIM;
		switch (overrun_behavior) {
			case TextServer::OVERRUN_TRIM_WORD_ELLIPSIS:
				overrun_flags.set_flag(TextServer::OVERRUN_TRIM);
				overrun_flags.set_flag(TextServer::OVERRUN_TRIM_WORD_ONLY);
				overrun_flags.set_flag(TextServer::OVERRUN_ADD_ELLIPSIS);