I can’t really give an estimate of performance comparison, but I do know this: a material instance makes use of the same compiled shader. therefore if you have a scene with 5 MI’s you’re actually just executing one shader, while if using 5 different materials you’re executing 5 shaders.
the way I see it, it’s probably best to re-use as much as possible but within some sense. ie. using your terrain material for static level assets would be a bad idea
from my experience with UE3, making a ‘master’ material with lots and lots of parameters would heavily slow down its editability. ie. changing a single scalar param on an instance would hang my PC for at least 15 seconds. I hope this has changed in Rocket
anyway, you can probably reduce it to the following: a terrain material, one or a few ‘master’ level materials depending on how different they might be, a generic level asset material, a weapon material, a character skin material, a character hair material, and maybe character cloth/eyes/others if you’re going for a lot of detail. then of course one or multiple materials for particles and other effects, and one each for other specific stuff like grass, trees, etc.