I think some people simply prefer to read the declarations from right to left. const
applies to the left-hand token, except when there is nothing there and it applies on the right-hand token. Hence const T&
involves the “except”-clause and can perhaps be thought more complicated (in reality both should be as easy to understand).
Compare:
const T* p; (pointer to T that is const)
T const* p; (pointer to const T) //<- arguable more natural to read
T* const p; (const pointer to T)