I feel like increasing visibility of a function/type should require more verbosity. I don't know of any PL that follows this design principle for >2 levels though.
Ordered by verbosity:
public, private, protected
, pub, pub(crate)
Has any PL solved this?
Discussing different ways of passing values through nested React components:
https://blog.logrocket.com/mitigating-prop-drilling-with-react-and-typescript/
In addition to showing examples of each, they count lines of code as a rough verbosity measure!
Excellent discussion of verbosity (many keywords), orthogonality (scalar vs record expressions, calling conversations) and semantics (bizarre equality for NULL) in database query languages, focusing on SQL:
https://edgedb.com/blog/we-can-do-better-than-sql/
(Uses 'design by implementation' as derogatory!)