The string (varchar) representation of the date depends on your "locale" setting (for example, dates in the UK are often presented differently than in the US).
In the above example, your first CAST () explicitly defines the varchar format, and the second causes the database to check its locale settings to determine how to format the varchar result.
The simple fact that the conversion depends on something external to the CAST () function makes it non-deterministic.
In other words, you run CAST () with one locale parameter, change the locale, and then run MOST CAST (), and you get a different result. This is a definition of non-deterministic behavior.
source share