The expand version will be much more efficient for sure as it does not actually allocates new memory and does not do any copy.
They do behave differently in subtle ways. But not sure the exact reason here