For FC, I definiately vote CX.
For BC, I would probably choose BA for the flat seat. The HKG-JNB route looks like it is going to be the last route to get NBC so that means a long flight with the old seat.
Interestingly enough, I just flew to South Africa yesterday on BA. My body much prefers the 18 hour stopover in HKG to the 4 hour stopover in LHR. I sleep much better on the second flight from HKG than the second flight from LHR. I was wake almost the whole second flight keeping the flight attendants busy making me snacks!