When an array A has non-zero elements but the expansion of "${A[*]}" is
still
a null string, it is not treated as such for purposes of ${var:-X} expansion
(though $* is treated as null in the same circumstance).
$ A=(''); set -- ''
$ echo "<${A[*]:-X}>" "<${*:-X}>"
<> <X>
$ IFS=
$ A=('' ''); set -- '' ''
$ echo "<${A[*]:-X}>" "<${*:-X}>"
<> <X>
