@_exported and fixing import visibility

No, it isn't; only the overlays write that explicitly. A mixed-source framework always re-exports its Clang module, but whether or not that was the case you'd still run into issues with the example I showed, because there's a pure C module "in the middle" if the import chain.

But I'm really trying to leave mixed-source frameworks out of this and just deal with "Swift libraries with C interfaces", which I think is interesting everywhere.

@anandabits' model is workable, with the new restriction being on things that are both public and @objc. (I'm okay with sacrificing a bit of precision for app targets, which expose @objc internal things too.) It does mean the work here on "implementation imports" won't solve the problems with operators and extension members leaking out, but I do feel better knowing that Python works the same way…even if "extensions" are way less common in Python.