1 - I don’t see a performance hit from using material collection parameters. You can only use a maximum of two MPCs per material, though. That seems a bit excessive, though. What exactly do you need to be wet?
2 - Draw calls. Draw calls depend on a number of factors: memory, GPU, CPU, but it’s much better to have more textures and less instructions. You can use shared samplers for assets that are going to be everywhere. There’s obviously a memory cost, but memory is cheap nowadays and saving on draw calls that way is fantastic!
3 - Uh, dynamic lighting is always more expensive. Direct lighting only is fine, but you need to supply the bounce lighting somehow, either as a skylight or in the material’s emissive (for a very cartoony game). You can’t bake lightmass from an object that needs to be moved, as far as I’m aware the light has to be marked as movable, and it renders all dynamic. You also need dynamic shadows on EVERYTHING, not just objects up front, because otherwise shadows will not appear anywhere in the level. Baking is always good for performance because of how much it groups multiple functions together. Unless you’re doing a really cheap mobile game, and I do mean extremely cheap mobile game (no shadows, no real shading, basic rendering), then baking is a lifesaver.
4 - More meshes means more draw calls. Easier to cull the meshes out that way, but a greater overhead. You can use the hierarchical LOD system to automatically build instances around the world and save on draw calls, but that would make the GPU draw more polygons than what it can possibly show onscreen.
5 - I have only basic experience with splines in UDK, none in UE4, so I won’t answer. However, they seemed to behave as static objects in UDK.
6 - Not too sure.
7 - Lots of stuff you can do. Lower the resolution, don’t use too many dynamic or stationary lights. I’m not sure what your project is doing and what hardware you’re targeting, though. That info is important. Some people modeled individual bricks and literally built a brick wall out of individual bricks and the performance tanked. Other people make 500+ instruction shaders and everything crashes.