If theyre using enum order indices then its not technically being reordered just the display order is being changed. My real concern is with removing items, you can always add buffer to the enum to make sure its large enough for all possible items but removing them even shifting it to a blank and shifting it youre reordering indices. Either that or you have another list of indices to skip.
At some point the design concerns outweigh the performance benefits.