Removing required attribute on user entity fields not working
Drupal has element_children() to help you safely loop over render arrays. Looping over such arrays manually will inevitably causes problems. Your code should look more like this:

foreach (element_children($form) as $key) {
  if (strpos($key, 'field_') !== FALSE) {
    $form[$key][LANGUAGE_NONE]['#required'] = FALSE;
  }
}


Incidentally, your current code doesn't work because you're modifying a variable that has only ben declared within that function's private scope.