The SDK and the OS are two products. You mentioned MS VS as a counterexample, but you should have compared its versioning to the OS versioning, not to the internal versioning of the same product. Compare MS VS versioning with MS Windows versioning. Do they match? - No. Android Studio vs Android? Xcode vs macOS?
Like the others do, also Sailfish SDK in its particular version enables development for various versions of Sailfish OS.
As a developer you should not need to worry which Sailfish SDK version to use. You should be able to always use the latest greatest SDK and only worry about choosing an appropriate Build Target (Kit in Qt Creator’s terminology) when configuring your projects.
Build targets (and emulators too) for various Sailfish OS versions can be installed either using the SDK Maintenance Tool or with the help of
sfdk, the SDK CLI frontend.
Each build target supports development for the Sailfish OS version stated in its name or any later backward-compatible Sailfish OS version.
The newer build target you choose, the more (newer) features are available for development. The older build target you choose, the older is the minimum Sailfish OS versions your binary packages will support. Binary packages compliant with Jolla Harbour rules are expected to work well on Sailfish OS versions newer than the version corresponding to the build target used.