This might be an artifact of our build system (Bazel), but not serializing the check into the serialized module wouldn't be an issue for us. If you have AppA with min deployment of 16.0 and AppB with min deployment of 26.0, and both depend on a common SharedComponent (which is statically linked into the apps), then each app "pushes down" the min deployment through the dependency graph and builds SharedComponent separately with the appropriate value. So having the .swiftmodule contain whichever branch that particular compilation ended up as would be fine.
Inlinable code across separately compiled and linked images like frameworks is definitely its own can of worms, but I think there's still value to this as a compile-time check for some use cases.
if #sdk(>=...) would definitely be useful as well, but it's a separate thing. In the example I gave above, AppA and AppB could both be built with the 26.0 SDK, so that wouldn't be the right thing to check if we needed to conditionalize behavior based on the minimum deployment.