Indeed, there is an ongoing conversation which highlights a very practical pitfall related to this issue:
With the proposed feature as it is, Michael's preferred spelling would end up allowing us to write File.System::Stat to mean FileStat rather than FileSystemStat. That is to say, the very problem that Michael is trying to avoid by a deliberate naming choice ("System.Stat implies the status of the system instead of a file") would be undermined.
Mind you, this namespacing practice already has precedent in the standard library: we have decided to put a bunch of APIs under the Unicode namespace, such as Unicode.Encoding. The ability to use an unparenthesized module qualifier for any nested component interrupts the intended straight-through reading: Unicode.Swift::Encoding reads like it's a Swift encoding rather than a Unicode encoding. In some places, that reading is merely nonsensical and not actually confusing, but in others (such as the File.Stat example above) it would be a dealbreaker.
Going forward, unparenthesized module qualifiers would require authors to consider how nested types will be read with any combination of module prefixes, making current namespacing practices probably unwise--which admittedly would advance the goal of not having ambiguous nested types in clashing modules, but not exactly in the way proposal authors intend.