> The right way to define this is to say that objects have a value representation consisting
of a fixed subset of the bits of their object representation, and that the value of an object
is the sequence of bits in the value representation.

Not quite, while the value representation of an trivially copyable type will appear in the object representation, for an object of non-trivially copyable type, the value is a user established thing: such as `std::string`, since it has a pointer to external data.