I don't think I've ever actually read the standard in over 30 years of using c++!
Put simply you can't initialise a ref from a rvalue as the rvalue doesn't 'exist' past the statement (rvalue life expires). However with a const ref, rvalue 'life' is extended to the life of the const ref.