1) Yes, absolutely. It's an area that I'm myself very interested in exploring further.
2) No, I don't think it can realistically be done with permissions. I haven't given this much thought, but you probably need to maintain a table with the degree of separation between a given pair of users. Jeff Davis would be the perfect guy to help you figure out how to do that ;)