These two options are 100% equivalent, because ${MSVC}
in the genex will be evaluated immediately (i.e. at configure time). So it comes down fully to code style preference, which is subjective (but I find the if
-based form more readable).
For a case where configure-time vs. generate-time can be different, see a recent question of mine.