actually /breplace is non-progressive like this, and is a lot faster than your loop.
The only exception is that /breplace can only handle single-byte (character) replacements, and is not useful if you want to replace letter pairs or words with other words.
For this use however, /breplace is the breakfast of champions.