Layered Materials and Optimizations

So I’ve been working on learning Layered Material setups, most notably the Infiltrator and Outpost (UT4) have been extremely good examples of this.
But it has introduced some questions about layered materials that I believe have gone unanswered in the Engine questions, documentations or streams.

  1. In Outpost, there is a decent single master material that blends between Paint and Steel material functions. Because Outpost is almost entirely following
    a metal and painted metal aesthetic that this makes sense. However, in the case of say - a city street, this means multiple master materials to blend different
    types (brick wall + plaster, metal + painted metal, rubber + grime, plastic + painted are just a number of examples in this scene)

This raises the question: Is there a way that in my master material I can swap out Material Functions in my Material Instances? This would resolve to a single
master material, with multiple material functions (concrete, steel, etc) and different material instances for different meshes.

  1. If this is not the case, then how performance heavy is having different master materials around the scene? My understanding is that Material Instances
    are ‘optimized’ - example, having one master material and material instances in the scene. If each new Master material for different types of surfaces is
    160+ instructions, then this would equate to an extremely low performance on the overall scene?

If anyone could assist me with this, that’d be awesome!
Thank you in advance,