Once the shader code is compiled its instruction count remains constant. It is irrelevant what kind of data is running through it, every instruction will be executed, even if the end result doesn’t even change a pixel in the final image. This is due to the architecture of the GPU: Single instruction - multiple data (SIMD: Single instruction, multiple data - Wikipedia) One program fed by different data for each pixel.
Optimization mostly means the preparation of the data before it gets onto the video card, so yes, LOD, texture atlases, drawcall reduction and so on. (See: Performance and Profiling | Unreal Engine Documentation)