No, because that would be stupidly expensive. Besides, it would introduce a second problem: fixing the healing code - more specifically the parts that validate the candidate functions, which can be bugged as well as anyone who as written automated tests knows.
But I guess that saying that your system died from autoimmune disease is way more "exciting" than saying that it died from a segfault.
"system died from autoimmune disease" - this is gold!
I can't imagine why would anyone want to have an untested set of semibuggy functions just to replace them at will.
However, I can imagine the tinkering code approach, not "self-healing", when we are expecting ALL functions to be good, it is just we don't know which one fits better to the situation. People actually do this all the time since the beginning of the history, but perhaps the discussed approach can introduce more abstract framework for that.
But I guess that saying that your system died from autoimmune disease is way more "exciting" than saying that it died from a segfault.