Copying into a string is a safe default. Also, proto’s API currently returns string references (and not views) so making a copy is required for open source.
(Although now std::string_view is common, I hear rumors that the proto API might change…)
Maybe that's true, but safety is an additional concern. You have way more lifetime headaches if you alias the underlying data. Copying avoids all that.
(Although now std::string_view is common, I hear rumors that the proto API might change…)