Constant complexity means that the container is not allowed to copy / move individual elements, so it must transfer ownership of the existing storage to a new object, so the pointer returned by data() must be the same.
For assignment of forwarding (and not for moving), this is true only if propagate_on_container_move_assignment true for the type of vector allocator, or distributors compare equal.
source share