To be clear, this rule exists today: https://play.rust-lang.org/?gist=9f73f8ee8e5d1c3464998f401f621884&version=stable
The reason is to help with reasoning about unsafe code. If you are using a privacy boundary to control safety, you want to know that the boundary is not a lie.
We’ve called this the “less than or equal to” rule - all items are no more visible than their stated visibility. This RFC brings us into an “equal to” rule - all items are as visible as they state they are (though, with export items, possibly not at this location).