Care to share your Vector implementation that is "stack safe" and "UB safe"?
Of course you can fuck with it enough to make it unsafe, but at that point you know exactly what you're doing
In some cases you can even "fuck with it" less than std::vector and cause memory unsafety because std::vector was implemented by people who've been fucked with before, and this "safe" collection maybe was not. Pushing items from the collection itself into the collection again when it's full is often one way to cause this - the std::vector promises this works correctly.
Vector<int> v {1, 2, 3};
int *p = &v[0];
v.push_back(4);
printf("%d\n", *p); // this is UBBut yes, in my implementation I have a safe version of int called 'i32' which overrides the & operator and doesn't allow it to return raw pointers.
There are significant costs to this safety, of course, just like adding bounds checks.