How can I let members edit their relationships?
I've done something similar with Views, VBO and a custom action.  There is an "Add relationship with contact" action in VBO but for more control over the action you can write a custom action.  

In my case, the view is of Civi contacts with one of several relationship types to the org. The action is a 'Set as Correspondent' button.  Only one person at a time holds the Correspondent relationship with the org so the action uses civicrm_api3() to find and end any current Correspondent relationships, create a new relationship between the selected contact and org and create an activity for info purposes.

Your action could do something similar but check there are no more than 4 existing relationships of that type before creating a new one.