What happened?
upjet resources are not setting the observedGeneration in the Synced condition which causes the lastTransitionTime to be updated on every reconciliation cycle.
See crossplane/crossplane-runtime#902 for more details.
How can we reproduce it?
Create an upjet-based resource and put a watch on it. Observe that the resource is updated on every pollInterval and the only change is the lastTransitionTime in the Synced condition.
WithObservedGeneration() needs to be added to the ReconcileSuccess() conditions (and possibly others?)