Currently, the Blueprint compiler will only update references to a reinstanced CDO/archetype object if it falls within the immediate hierarchy of the Blueprint class type OR if it's a component template or ChildActorComponent actor template. This is done as an optimization.
For example, if a Blueprint instance happens to cache a reference to an unrelated CDO, these references will not currently be replaced if the target Blueprint is recompiled after it's been cached.
Normally this isn't an issue, but for certain workflows (e.g. the experimental feature that allows selected BPs to be edited during PIE), this can present a problem.
Current suggested workaround is to always query the CDO when needed rather than caching it, if possible.
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-143731 in the post.