About ambiguity introduced in function default arguments

I still don’t understand why switching the order would switch between warning and error.