The crux of dangling in many cases are member functions returning references (or pointers of views) If those functions would be lvalue-ref-qualified this dangling can not happen.
This is a common misconception. Consult my blog post "Value category is not lifetime":