I don’t really understand what the purpose of the RooAbsProxy class is

I have read the explanation:

RooAbsProxy is the abstact interface for proxy classes. Proxy classes hold pointers to other Roofit objects and process serverRedirect changes so that the proxied pointers are updated accordingly on a clone or copy of of the owning class

What exactly is a serverRedirect? Can someone give a simplified example of where this would be useful? Is there a reason why some objects that are stored in a RooWorkspace must use this class?