Using display lists, objects are defined on server and are stored and displayed on client. Display lists are kept at the client, so they need to be received only once from server but displayed many times. Consider rotating an object with 10,000 vertices. Without display lists, each redisplay requires 10,000 calls to glVertex. Although the 10,000 vertices are still processed, only a single call goes over the network.
State changes persist, even after a display list is finished.
Display lists can call other display lists Display lists are not editable, but you can fake it. Then delete and replace B, C, and D as needed. Not all Open GL routines can be stored in display lists.