How to limit one role per user?
You will be best using hook_form_alter().

You can edit the registration form &amp; user edit form and change the type in a custom module. 

function register_form_alter(&amp;$form, &amp;$form_state, $form_id) {
  if ( $form_id= 'user_register_form') {
    $form['user-register-form']['roles'] = array(
      '#type' =&gt; 'radios'
      // …
    );
  }
}