Pashkela.
да какой это баг, функция меняет все варианты котрые есть в массиве, и ей пофиг что они уже были когда то поменяны, перезамен идёт по несколько раз, так как заменив например на символ "e" на "d", она дальше в списке массива находит ещё символ "d" и меняет соответственно его на "x", поэтому и получается не верный результат