Due to some reasons I currently don't have access to official Embarcadero docs, but, as I remember, strings are always copied and dynamic arrays are never copied. Even if they should be, it should happen, when RefCount > 1 and size changes, but not always. Dunno. I've been always relying on "no size change -> no dyn array change" behaviour. If it's not the case, then I should review my code.