In pre C++11 it was quite typical for std::string to be implemented with COW semantics.
Since C++11 standard it is no longer permitted, though it is not necessarily reflected in all stdlib implementations.
This is my mistake. I assumed shared pointer semantics and applied it to the wrong type :\