Armature undo was incomplete; no less then 6 places needed undo pushes. Added undo pushes, and made sure deselectall_armature/posearmature played nice and only did undo pushes when they're called with AKEY. This seems like a fairly old issue. I guess people just didn't notice it enough to file a bug report. :)