A natural way to do this is to create a group for each subsite that has a composition relation to a higher level group that acts as a container to the subsite groups. Listing the users for a particular subsite would then consist of retrieving the members of a subsite group. Permissions for viewing could also then be tied to membership in a particular subsite group.