Also the compiler is self-modifying. And the compiler flags as well. And the OS. And the chip architecture sometimes. Like, at what point do we decide that pushing the analogy further is just silly and just drop it altogether?
I am no expert, but I have read a couple of good books on the topic and my understanding is that while it is true that your DNA can modify itself to some extent in response to stimulus, the extent to which this happens is very limited in scope, and limited to ancient genetic pathways, which means these get activated only in times of severe biological stress, like through starvation or famine.
Aren’t we somehow simulating how life works? Higher abstractions/constructs improve the way the lower constructs work :). Of course, just an oversimplification.