RejectChanges is an old routine, ment for databinding purposes. RejectChanges is used when IEditableObject.CancelEdit is called by a grid for example. It calls entity.Fields.RejectChanges which in turn calls field.RejectChange, which copies _originalValue back to _currentValue and resets IsChanged (and IsDirty is reset as well on Fields)
_originalValue is an internal value which is set when IEditableObject.BeginEdit() is called by a grid.
DbValue is never copied to any other variable. DbValue is set when the entity is read and is after that not touched so it's usable for testing against the database value last known for that field: when it was fetched.