Agree in principle, but I'm not sure if it's possible to implement Undo for all shell operations. But there's a lot of existing systems out there, and anything which can be adopted incrementally is a big win.
Another shell variation I like is using trash rather than rm.
Another shell variation I like is using trash rather than rm.