Deep copy from flow (array of objects) variable to payload oddness?

Read the description of deep copy on a change node, makes sense, but I think I am seeing odd behavior?

If I inject a change node, that copies a flow (array of objects) variable into payload then sends same to say a UI table, the table never updates.

If I inject a change node, with deep copy checked, that copies a flow (array) variable into payload then sends same to say a UI table, the table updates, as expected.

I have seen this several times now in different flows, that in 2.2.2 worked fine with no deep copy but in 3.0 deep copy checked seems to be required.

The way I read deep copy feature, the table should always update, because payload should always be set, as either a reference to the flow variable, or an explicit copy, of said flow variable, no? Is there some sublime issue or factor here I am missing?

I would create a flow to illustrate, but the issue is so far inconsistent. Some flows work as is, from 2.2.2 to 3.0, others while I have been testing 3.0 today, I have had to check deep copy. This has me scratching my head a bit.