Thanks for the help, everyone.
I didn't know that LH gives the same mileage benefits as UA for trans-Atlantic and intra-Europe flights (now I know!

). It sounds like there was a mix-up with the FRA-JNB flight, and I got extra miles. I'll suffer through it.
Wind Flyer, checkin at JNB took <1 minute, fortunately, and I got my boarding passes for JNB-FRA-IAD from the LH counter there. Regarding having the ticket issued with LH flight numbers for the LH portions, I'm not sure I can do/want to do that - I get a substantial corporate discount on UA, and the pricing may be affected if I switch those flight #'s to LH. However, I'm going back down in ~4 weeks for a 2-day meeting, same routing as this one, and I'll report back on how that goes for the next trip.
I don't know whether or not this is a system issue, station issue, or agent issue (good questions), but I'll pursue it more vigorously if/when it happens again.
Again, thank you for your help, everyone. "L#" - Whatever!
Will