All right...
Now show me that awesome ReplaceWith and I'll tell ya what and how you are replacing items. Abusing complexity never fascinated me but... default ReplaceWith is limited like an amoeba, perhaps you have some present a la 2016 to show? Else I did not used that Outer and I'm not very interested in using it for the moment.
Aside for replacements
I prefer replacing with a defined item all the time for a simple reason: Items from mod package are returned True so this will prevent any infinite recursion replacement when you will use ISA or whatever type replacing item with a child class. The hint is: Item from mod-package won't be asked if ISA or ISA or ISA, it is accepted with no additional processing. That constant thing I'm not sure how much speeds up, a master top wrapper wisely added might be cute in exchange.
Barbie wrote:has the advantage that you have to declare the name once and only once what is helpful for changes in the future.
Yes and No. While coding using a smart Text Editor you can use FIND-REPLACE features which will change everything, in let me guess ... under a second. Else, if you do a re-edit of a mod, for sure you might want to look around it if something else needs fine tuned, not only recompiling based on a single change, for me does not worth an effort to a new compilation for changing one thing once.
Of course if you like to live complex it's up on you, I do prefer simple things making others to understand them easier rather than bugging them, several members of community will enjoy "stealing" from you and you can be proud by some contribution.