I have done both of these flights (on SA (C) and LH (F)) recently...
If you are looking for convenience.. then I would pick the SA to Capetown - It leaves FRA around 1700h and arrives 0500h. This will be the first flight to land in CPT, and clearing immigration will be a breeze. The beds on SA J is very good (perfectly flat) and more private than the LH seats. Try to get Rows 5 (as service starts at row 1 and row 5. Row 1 is bad because of the galley and the washrooms. The LH flight down to JNB leaves way too late for me (2300h) and arrives too late as well (0900h). immigration is a mess at JNB at this time as BA, EK, SQ all land around the same time. Also, you also need to retrieve your luggage in JNB and haul it over to the Domestic terminal (20 minute walk) and check in again at SAA for your flight to CPT. Way too much hassle first thing in the morning..If you do decide to take this option vis JNB, then I would recommend that you book on SA 346 JNB-CPT (at 1000h - tight connecting though), as SAA operates the Airbus 346 plane on this route with the international configured J seats.
On the return to FRA, I would pick LH via JNB, as the SAA CPT-FRA flght flies during the day, and you loose a whole day.
Here's my review of the CPT-FRA flight on saa
http://www.flyertalk.com/forum/showthread.php?t=565103