(%i1) (f : g, g : h, h : i, depends([f,g,h,i],x))$
(%i2) substitute('diff(f,x)= g,'diff(f,x,2)), derivsubst : true;
(%o2) 'diff(i,x,1)
(%i3) block([derivsubst : true], substitute('diff(f,x)= g,'diff(f,x,2)));
(%o3) 'diff(h,x,1)
I think the XXX, derivsubst : true syntax is convenient, but it's not the same as block([derivsubst : true], XXX).
Maybe there is a workaround--set an optional variable in the implied ev. But that kind of eliminates the convenience
of the XXX, derivsubst : true.
--Barton