c++ wonkery
The thing I find most perplexing about value categories in the C++ standard is the concept of "identity." The C++ standard never defines what "identity" is, and I can't even find discussion on stackexchange on the concept. It is treated as a self-explanatory concept.
The concept of an expression having identity, as I understand it, is the idea that expression carries around, directly or indirectly, the address in memory associated with the value of that expression.
One way this can happen is if the program is well-formed if the expression is given to std::address_of, which explicitly returns the address in memory for the value of the given expression.
Other ways this can happen is if the expression is an array subscript operation (on a type that does not overload that operation). This because "by definition, the subscript operator E1[E2] is exactly identical to *((E1)+(E2)).
If you subscript a non-overloaded value that cannot be given to std::addressof, the standard requires that expression also cannot be given to std::addressof. However, the C++ standard still considers this expression to have "identity" because the expression, by definition, is an explicit computation of an address in memory.
However, we arrive at a contradiction if we remember that two facts that the C++ standards considers all lvalues to have "identity", and that function names are defined to be lvalues. This is absurd because if a function is overloaded, the actual subroutine referred to by that name is ambiguous. In fact, function names are the only lvalue in the language which sometimes cannot be provided to std::address_of.
So the definition of "identity" is not self-explanatory. It is, in fact, a completely arbitrary concept. It should be precisely defined in the standard. Upon doing so, the standards committee will realize that it is completely arbitrary and unnecessary, and then also realize that xvalues are completely arbitrary and unnecessary, and then we will return to just having lvalues and rvalues like we should have in the first place.