It should return a mutable_buffer. This works for std::span because there's an explicit overload (I'd say this should be handled by the generic function taking a mutable_contiguous_range). I'd attempt something like
template<detail::mutable_contiguous_range T>
[[nodiscard]]
mutable_buffer
make_buffer(T&& data) noexcept;
And remove all the vector, array, string and span overloads, as these should already satisfy mutable_contiguous_range.