This is a completely horrible strategy involving self-replacement of this function! To be honest this can be removed entirely since it is really the caller's business how many times, if any, they want to call this function. Transform functions do represent "relatively trusted code" since we don't plan them to be introduced into the system without review.