Here is a Driver. It is a Custom Property on an Object that is driving a value in a Shader Node. It was made by right clicking on the property and Copying as Driver. It uses a Variable. If I change the property's value, it updates instantly. This is working properly.
Here is an equivalent Driver accessing the same property, but this time its using the Full Data Path as an expression. It works, but it does not update in the viewport when the property's value is changed. It is the correct value when doing a F12 render. Updating Dependencies or reloading the file updates it.
I am trying to figure out how to get drivers to update in the UI instantly when using an expression like this. (The use case is Relative Path Drivers. I want to Drive based on a path to a property by name in the current file, not an absolute path to a specific property and target, which is what you get when using the variable system. In other words, if I drive based on World Color, I want it to be the World of the current file, not the asset's home file. See this question.)
There are a lot of questions out there related to Drivers not updating. Most of those are from before the new Dependency Graph that came in 2.8, so they don't apply.
So I need a way to have it automatically update, or I need to figure out how to Update Dependencies on everything. This is also a question that comes up. The usual method is to re-assign the existing expression to the Driver. This solves many update issues, and it solves this one on objects local to the file. But it does NOT work on Linked Objects, so cannot fully address the problem. Those can still be updated with the Update Dependency button, but their expression field is greyed out and cannot be modified.
How can I get expression drivers to update?