I think once we have collation rules possible in VS where CMake can enforce the “you cannot use PRIVATE modules here” rules we expect, we can then just tell VS “sure, everything is public” and let the collation checking fail the build where it needs (probably with far better error messages as it has more context too).
Currently, there is no enforcement of CMake visibility rules in VS at all. It will be necessary before VS C++ module support is allowed past the experimental gate (so that VS developers are not surprised when NInja generators refuse to build their code that worked in VS).