I mean, normally, you would only do this kind of substitution if either it simplifies a lot the function you are integrating, or it simplifies a lot the region on which you are integrating.
To effect the substitution, the tool amends a running kernel image with the new functions' object code and injects a jump at the head of each existing function to call its new counterpart.