To save this undo stack on this and similar platforms would also require changing the undo mechanism entirely, from using pointers into using static references having meaning across instances of the document model. The inverse model function would have to be identified by an enumeration, the object to change would have to be identified by a kind of search path. The details about saving the data, and where to save it, would be the tiniest part of this problem.
But even on these platforms, if an individual app wishes to implement a custom undo stack which supported this feature, that would be very possible. If cross-platform frameworks implemented support for this that could be a definite advantage over native APIs.
There are packages for Emacs that persist undo data. I use one, and love it. I think the above reason is probably the reason they're not included in the base distribution.