Yes, that’s correct. Shader modules are part of the pipeline, so for different shader module configurations (or if want to use the same ones but with different specialization constants) you need different pipelines. If pipelines are similar you can create them using the derivatives flag and specifying a base pipeline to speedup creation.
One exception though is VK_NVX_device_generated_commands, but that one is obviously only available on NVIDIA GPUs.