MODBUS integration last_update and last_changed are always the same

My understanding of the state machine (which might be wrong) is that last_updated is the last time a value was received for the entity and last_changed is the last time the state was changed.

For the MODBUS Integration, the last_changed and last_updated timestamps update on every poll of the modbus whether or not the value (state) has changed.

Because both change on every poll, an automation looking for a state change triggers on every poll of the register.

Is my interpretation of the state machine correct and if so is the implementation of the MODBUS integration incorrect?