The binaries produced can be reused on different targets, but they might be larger in size.
There is no requirement for function versions to be defined in the same translation unit. However, they must all be declared in the translation unit which contains the definition of the default version.
Under what circumstances will two targets, one with SVE2 and one with SVE, run the same version of a function?
Answer 3 is the only one where the most specific version for both targets is the same, namely SVE. In answer 1, one target would pick SVE2 and the other default, and in answer two, one would pick SVE2 and the other SVE.