### 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.
}
		for (int i = 0; i < TextServer::SPACING_MAX; i++) {
			TS->shaped_text_set_spacing(text_rid, TextServer::SpacingType(i), font->get_spacing(TextServer::SpacingType(i)));
		}
		TS->shaped_text_set_bidi_override(text_rid, structured_text_parser(st_parser, st_args, txt));
		if (!tab_stops.is_empty()) {
			TS->shaped_text_tab_align(text_rid, tab_stops);
		}
		dirty = false;
		font_dirty = false;
		lines_dirty = true;
	}
	if (lines_dirty) {
		for (int i = 0; i < lines_rid.size(); i++) {
			TS->free_rid(lines_rid[i]);
		}
		lines_rid.clear();
		BitField<TextServer::LineBreakFlag> autowrap_flags = TextServer::BREAK_MANDATORY;
		switch (autowrap_mode) {
			case TextServer::AUTOWRAP_WORD_SMART:
				autowrap_flags = TextServer::BREAK_WORD_BOUND | TextServer::BREAK_ADAPTIVE | TextServer::BREAK_MANDATORY;
				break;
			case TextServer::AUTOWRAP_WORD:
				autowrap_flags = TextServer::BREAK_WORD_BOUND | TextServer::BREAK_MANDATORY;
				break;
			case TextServer::AUTOWRAP_ARBITRARY:
				autowrap_flags = TextServer::BREAK_GRAPHEME_BOUND | TextServer::BREAK_MANDATORY;
				break;
			case TextServer::AUTOWRAP_OFF:
				break;