Never occurred to me before, but here "substitutes" reads to me as being commutative. I read both as having the same meaning. (i.e. you end up with unicode homographs replacing your ascii) Just me?
Substitute poison for healthy food.
Substitute poison with healthy food.
The first means you take away healthy food and give poison. The later means you take away poison and give healthy food.
[1] Except that "replace X for Y" sounds weird, except in the common phrase "replace like for like" (and probably some others!).