So, ELI5: What do you do instead, where you return a modified object, but still have immutability? Or do you avoid the problem by not trying to do that?
If you really need your type to be backed by a contiguous block of memory, you batch updates (stencils, SIMD, etc.)