Both backing store and save under are attributes/flags that can be set when creating a window with XCreateWindow(). However, they're only hints to the X11 server, are not on by default, and are not really worth the trouble with modern hardware.
Generally, when (part of) a background window becomes visible, the XServerX11 server will send an ExposeExpose event to the X11 client, which should cause it to redraw it. Since those are only hints, the X11 server may still send an Expose even if the client had set both .backing_store = Always on the window and CWSaveUnder on the popupspopup windows it opened on top of it.
There are also interfaces which allows a client to query if the server implements backing store and save under: XDoesBackingStore() and XDoesSaveUnders().
The window manager has nothing to do with all this; it does not redraw any windows (other than its own: the title bars, close buttons).