Good points.
but that form of structuring has been imposed by the nature of directories/files. I am not sure what the right solution would be for that case, perhaps internal tags for a set, but that would make things complicated.
In the nature of sets, maybe this could be done: "Source Code", "Shared With XYZ", "Application1"
Sharing could be defined on the set, "Shared With XYZ" is a tag that when defined could have the permissions etc. When a file is "placed in it", it is automatically shared.
We need to get detached from hierarchical thinking to see the possibilities, which is difficult as it is all present.