Well, it is a "bug" in quotes. It was a design decision made in 1996 when all the parameters of what the diff should handle were different. Why we didn't decide to use a separate buffer at the time, I honestly don't remember. But we also wanted the diff to perform really well on 1996 hardware, and I do remember we wanted the diff to handle a 10 megabyte file. So if we copied that into a separate buffer, diffed it, and then took whatever changes were made and put them back, it was going to have a lot more noticeable effect on performance then. Also, if memory serves, in 1996 a lot of products only had a few undo steps. So we knew it wouldn't be missed as much.
Honestly, it's been roughly 21 years since the diff was put in the product, and it has come up less than you think. I would say more in the last few years, probably because most editor controls have multiple undo steps. I think this is the first time I remember it being reported in a beta.