Ну, так-то ты прав, но Cow занимает три usize'a, плюс флаг Enum'a для стринги. И если на размер [&str; 10] как бы пофигу, то вектор там может быть довольно большим.
Но компилятор этого не знает, и не знает, что ссылка как-то связана с массивом. Так что имеет право сделать например такую оптимизацию наша_типа_статическая_str.ptr_eq(&vec[0]) -> false.
Почему ты до сих пор считаешь, что память может быть невалидна?
Потому что в контракте строки не сказано что она _обязана_ быть хип аллокейтед. Значит это деталь реализации, писать код с потенциальным уб с оглядкой на текущую реализацию - хрень