Just an idea, but we could use the ExpressionExplorer to automatically figure out the dependencies for a given expression and use @use_memo() to compute the result only if one has changed in value. This could be useful if the cell is long to run and is known to be pure.