The user-group based restrictions are specific to each object version. However, once set on an object, any versions that are derived from get the same group-based restrictions copied to it from its predecessor. Once you have all versions of a project with group-based restrictions, any user that performs a "copy project" operation will always get group-based restrictions regardless of which version they are copying.
If you have a project with user group-based restrictions, any new files or directories created in that project will have the project's group-based restrictions copied to it by default. Thereafter, when developers check out from that first version, the new version will get a copy of the group-based restrictions from its predecessor.
While you can place group-based restrictions on a release or on a process rule, that only affects the access rights to that release or process rule. There is no object in a database that represents a component, as in the "component" part of a release namespace.
If you have a requirement that only developers that are members of a specified team can create or check out files in a project, you have to apply group-based restrictions to the project and all of its members. If you do not do that, a user could create a new project, add one of that team's files to it, and check it out. This is a different security model from those used on file systems. File systems can support an inheritance model based on parent directories since a file can only appear in one place in the file system. In Synergy, an object can appear in zero, one or many projects and under different directories. That is why access rights have to be defined on a per-object-version basis.
Regards,
David.