It seems my guesstimate was wrong and it is in general true for f(x) a polynomial. Take simple example in only 2 dimensions. Let f(x)=$x_1^a x_2^b$where a,b are constants and by hand calculation or using computer algebra package such as maxima (as I did) or whatever one can show both (i) and (ii) true in this simple case. Because the scripts 1,2 arbitrary then by linearity we can assume it true for f(x) a polynomial in any number of variables.
Here is the code in used in maxima that i used if anyone is interested:
(kill(a,b,ff,k,x), ff:x[1]^ax[2]^b,tt:x[1](diff(ff,x[1])+k* (ff-subst(y[2]=x[2],subst(x[2]=x[1],subst(x[1]=y[2],ff))))/(x[1]-x[2])) ,disp(["tt"=tt,"ratdenom"=ratdenom(tt),"ratnum"=ratnum(tt)]), f1:x[1]ff ,t1:diff(f1,x[1])+k (f1-subst(y[2]=x[2],subst(x[2]=x[1],subst(x[1]=y[2],f1))))/(x[1]-x[2]) ,disp(["t1"=t1,"ratdenom"=ratdenom(t1),"ratnum"=ratnum(t1)]) ,te:tt-t1+ff+k*subst(y[2]=x[2],subst(x[2]=x[1],subst(x[1]=y[2],ff))) ,ldisp(["From the calculation if lemma 10.2.1 (i) were true in general then", ratsimp(te),"would = 0,and since it is 0 then (i) is in general true "])
,ff:x[1]^ax[2]^b,tt:x[2](diff(ff,x[1])+k* (ff-subst(y[2]=x[2],subst(x[2]=x[1],subst(x[1]=y[2],ff))))/(x[1]-x[2])) ,disp(["tt"=tt,"ratdenom"=ratdenom(tt),"ratnum"=ratnum(tt)]) ,f1:x[2]ff ,t1:diff(f1,x[1])+k (f1-subst(y[2]=x[2],subst(x[2]=x[1],subst(x[1]=y[2],f1))))/(x[1]-x[2]) ,disp(["t1"=t1,"ratdenom"=ratdenom(t1),"ratnum"=ratnum(t1)]),te:tt-t1-k*subst(y[2]=x[2],subst(x[2]=x[1],subst(x[1]=y[2],ff))) ,ldisp(["From the calculation if lemma 10.2.1 (ii) were true in general then", ratsimp(te),"would = 0,and since it is 0 then (ii) is in general true "]))
;