Why is Undo so terrible?

The Undo system works.
Thing is, different tools in Unreal are “owned” by different programmers. The programmer is responsible for implementing “Transaction” code where they must be implemented in C++, that is the backbone of Undo system, but very often there’s places where transactional actions should be implemented and the programmer didn’t do it.

And the Blueprint graph’s Undo is super slow because every time you undo the entire graph of nodes and connections are reconstructed.