CX never oversells F. It sounded more like a last minute booking of some VIP that needed to get to JNB in a hurry. OR you checked in less than the 40 minute cut-off check-in time. Then CX probably gave your seats away to someone who was on standby in F.
$1000 is more than sufficient for the fare difference between J and F. Considering you have a RTW ticket, and the diff is substantial considering all CX could have done is calculate the diff between that sector only and paid the diff between AONE and DONE based upon how much CX you're flying. And that they even gave you two upgrades to next class of service.
I really wouldn't expect more.. but you may try writing to Customer Service and see what happens. But from experience, that is already VERY generous of CX already.