src/share/test.cpp share/src/test.cpp
Also certain implicit build systems, rely on the hierarchy to know what is parent, and what is child. You lose that with sets.
I still think it's cool idea, but not for all of your documents...
Besides how would you deal with sharing, inheriting security attributes, etc?
If I have
share/test/something.cpp and share is shared to everyone, would
test/share/something-else.cpp got shared too the same way as the first one?