int[] is a value with mutable indirection, so copy conversion from immutable int[] to int[] is invalid. Then the callings of f and g with arr are solved with no ambiguous.
But, immutable int is a value without mutable indirection, so copy conversion from immutable int to int is *valid*. Then callings of h makes ambiguous with the two const-conversions, immutable int -> int and immutable int -> const int.