If there’s a check that notices the source and destination arrays are equal, but so are the indices, couldn’t we make a fastest-path (no-op)?
Although custom array types would have the problem of the possiblity of specialized getindex and setindex! methods.