No.
The simple search and replace method involves starting at the top (or the cursor I guess) and checking every single character one by one, incrementing the compare function until you reach the end of the file. This is simple to do but not terribly quick. When your machine is screaming along at however many gigahertz though it tends not to matter so much.
The better, though slightly more memory intensive, method is to generate a list of every character in the document and note the locations. If you then know say the character b is at 0x35,0xed and 0xf0 then you can simply change the values at those locations if the program needs to change the character b (far quicker). Typically though programs will regenerate the table after every change/every function call making your desire to have the characters retain knowledge of their former state kind of hard. I guess you could alter the source to do such a thing (or have a disable updates and force redraw/regenerate option, be warned that adding new or removing characters/spaces/whatever would break things very fast). As BRPXQZME said though everybody that has to do this for anything will tend to add another stage and change the character to another previously unused one (#@[]{}.... the list goes on, if you are really hard pressed you can also use long runs of multiple characters that will also not turn up in the rest of your document).