In your use case below, the output volumes in each case are 'out.mgz'. There should be *no* modifications to binF1.mgz or binF2.mgz. 'mris_calc' in fact only reads from those files, it does not write to or manipulate them in any way.
So I don't completely understand how their contents can be modified. Assuming that somehow they are, you can double check with:
cp binF1.mgz binF1-bak.mgz mris_calc -o out.mgz binF1.mgz add binF2.mgz
You report that the above operation has somehow modified binF1.mgz -- if so, then
mris_calc -o out.mgz binF1.mgz sub binF1-bak.mgz
should result in a volume with non-zero elements. Can you check if that is the case?
To debug, I added the two volumes mris_calc -o out.mgz binF1.mgz add binF2.mgz I was surprise to see that one of the volumes (binF1) is shifted of tens of voxels along an axis. When doing mris_calc -o out.mgz binF2.mgz add binF1.mgz, the binF2 is shifted.