forLocale

The order a locale writes a short date in — from a table, and the table is the honest part of this.

The original read CultureInfo.DateTimeFormat.ShortDatePattern, which is the operating system's own answer for every culture it knows. Compose exposes a Locale with a language, a script and a region and nothing that formats a date, so there is no multiplatform equivalent to read. A per-platform expect/actual could reach one — java.text.DateFormat on the JVM and Android, Intl.DateTimeFormat().formatToParts() in a browser — and that is the faithful version; it is three source sets of parsing for a column order, and a wrong actual is worse than a table that says it is a table.

So: the two orders that are not the world's default are listed, and everything else is DayMonthYear. That is a real claim about coverage rather than about correctness — a locale missing from these lists gets day-month-year, which is right for most of them and wrong quietly for the rest. The parameter on the picker is the way out.