If it is of any use to you it might be possible to make it into an open jaw. So you'd fly DCA-ATl-JNB but change the return to DXB-xxx-DCA. But that only makes sense if you would need to come back from PEK and could buy JNB-xxx-PEK then PEK-DXB. That way you'd still be able to use the value of the return. The limitation is the distance of the open-jaw compared to the distance of the legs you'd be flying. So returning from PEK to DCA would not work.