### Godot version

4.0.2.stable, master(d6dde81)

### System information

Arch Linux

### Issue description

When using Arbitrary or Word (Smart) auto wrap mode and the label's width is smaller than one character, CJK characters are repeated unexpectedly when autowrapped.

In the following screenshot, the three labels are all narrower than a character:

* にほんご
* 简体中文
* 한국어

| Expected | Actual |
| --- | --- |
| ![ksnip_20230418-152604](https://user-images.githubusercontent.com/372476/232703096-5b9819ec-0a48-4f54-9ba9-754f7a8b6229.png) | ![ksnip_20230418-152547](https://user-images.githubusercontent.com/372476/232703148-57c07818-aa99-4638-aa6b-5a55d3b0cd1c.png) |

All characters expect the last one is repeated.

### Steps to reproduce

Use the MRP.

### Minimal reproduction project

[test-4.zip](https://github.com/godotengine/godot/files/11259001/test-4.zip)

if (p_start == p_end) {
		return DIRECTION_AUTO;
	}
	int start = MIN(p_start, p_end);
	int end = MAX(p_start, p_end);
	int rtl = 0;
	int ltr = 0;
	int v_size = shaped_text_get_glyph_count(p_shaped);
	const Glyph *glyphs = shaped_text_get_glyphs(p_shaped);
	for (int i = 0; i < v_size; i++) {
		if ((glyphs[i].end > start) && (glyphs[i].start < end)) {
			if (glyphs[i].count > 0) {
				if ((glyphs[i].flags & GRAPHEME_IS_RTL) == GRAPHEME_IS_RTL) {
					rtl++;
				} else {
					ltr++;
				}
			}
		}
	}
	if (ltr == rtl) {
		return DIRECTION_AUTO;
	} else if (ltr > rtl) {
		return DIRECTION_LTR;
	} else {
		return DIRECTION_RTL;
	}
}
_FORCE_INLINE_ void _push_range(Vector<Vector2> &r_vector, real_t p_start, real_t p_end) {