Not sure if it's so clear. Depending on how specialization turns out, Owned might still be a case for std::borrow. Anyway, I shifted this discussion to URLO.
Here GenericCow::into_owned will not perform an unnecessary clone if it's known at compile time that the function is called with an Owned value. Note that .into_owned() might be in a branch that's not always executed (the typical copy-on-write scenario).
The proposed wrapper (Owned<B>) is no longer owning its deref target but owns a value of type <B as ToOwned>::Owned and uses the same semantics as Cow::<'_, B>::Owned to provide a Deref<Target = B> implementation (see source in std and compare with source of deref_owned::Owned::deref implementation).