Is this a possible bug in Blender 2.78a?
I don't have enough reputation to comment, so I'll post this here...

Undo seems to work fine for me.

Workflow:


New scene with standard cube
Press Ctrl-2, then Ctrl-0, then Ctrl-3 and watch how the cube changes
Pressing Ctrl-Z repeatedly goes through the stages of 3 subdivisions, then 0 (which is the cube again), then 2 subdivisions.


You may want to post a .blend file if your problem persists, or at least describe which kind of geometry you are having a problem with.