The answer here for me would be “depends.” Modularity wouldn’t necessarily be the issue but how often these assets are repeating. You don’t want the worlds illusion to off put the user by seeing the same thing over and over again. Let’s use the wall as a base example. This could be a generic wall that you could use over and over again. If you use the same texture on it and it has the same marking, scuffs, scratches, etc then someone might notice.
BUT if you vary the texture or have a completely different material set up for it you can hide the fact that you’re using the same geometry over and over again!
In this instance I would create four textures with their own setups. If you want variations of the four different types to keep from creating whole new textures you can use Material Instancing to affect the color parameters and get slightly different materials.
So in this setup. If you were to create everything here and 1 instance for each material this would be what you are rendering.
1 mesh - the wall
4 materials - (if all these are in the scene)
The instances do not cause a additional draw call.