The ARRAY command can produce both associative and non-associative (e.g., 'dumb') arrays.
@_gile thoroughly described what an associative array is, although what I will add/emphasize, is that when you make an associative array, regardless of how many instances of the arrayed object(s) you see in the drawing, there is only a single copy of it/them created, and that copy is inserted into an anonymous block, and it is that anonymous block that is inserted and copied (into another container anonymous block).
A 'dumb' array is a non-associative array, which is just copies of the arrayed objects inserted directly into the drawing, and is how the ARRAY command worked before associative arrays were introduced.
When an object is copied/cloned, any XData it contains should also be copied. So, what is it that you want to do exactly, when an object with xdata is cloned? Do you want to modify the xdata in the cloned copy or something else?