Why Difference in assign vs inline



kill(all);
depends(u,t,v,u);
eq1:v=F(u);
eq2:u=G(t);
soln:diff(eq1,t); /* need to assign soln before ev */

ev(soln,diff(eq2,t),F(u)=v,G(t)=u);

ev(diff(eq1,t),diff(eq2,t),F(u)=v,G(t)=u);

Why the difference?

My guess is that in the first instance, assignment to soln fully 
evaluates soln where in the 2nd instance something different happens.

Tom Dean