I have no idea, if FBX would be able to preserve this material inheritance. Nor if C4D’s export provides such an option, I didn’t see one either.
If not, I think, you’d need a custom FBX im-/export plugin (assuming FBX is capable at all), because after C4D’s FBX export, the information is already lost (not implying any fault). Not sure if there are still 3rd party im-/exporters around. I think, Cactus Dan had one once…
Any plugin or script (which would be quite simple to write) to clean this up after import, can succeed only to a certain extend.
Consider this scene:
test_fbx_material_cloning.c4d (296.3 KB)
While it is trivial to remove the Texture tags from children, where the parent has an identical Texture tag, I don’t think, there’s any way to preserve the Green Material assignment on Tube.1 during such a cleanup. Not sure, if there are situations, where this specific issue could actually cause a problem. But I also wouldn’t be surprised, if there were other complications like this.
So, if no built-in tools or plugin suggestions come up, I’d write this for you (with at least the above shortcoming). In that case, I’d prefer to have a test scene, which includes your corner cases (if any).