Kenner and I discussed this back in 1998:
http://gcc.gnu.org/ml/gcc-bugs/1998-07/msg00040.html
I went back to that message. You list four properties. The latter two aren't
relevant for optimizers.
But the second is that it's never modified.
My feeling, though, is that REFERENCE_TYPE by itself shouldn't have that
property because we already have a way to represent something that's never
modified.
That means that only difference is that REFERENCE_TYPE values cannot be
null while POINTER_TYPE values can be. Does that seem right?