Roles are not directly related to permissions.
A role in this case refers to the role in acs_rel_types.
Each side of the rel has a role. I think its only used to display in the user interface and doesn't have any additional meaning within the database.
So, its really kind of misleading. What you define as a role is more likely a relational_segment, which can provide a more specifc relationship to a group. For example, built in are the member and admin relational segments which can tell you which users have a membership or admin rel within a group.
When you grant permission on a relational segment all members in the group with that relation type get the permission.