How to disable Webform form element validation without removing required flag?
After some more trial and error I found my mistake. The '#needs_validation' property of the element is set at a later stage than the hook_form_alter() call.

In my hook_form_alter() implementation I added a custom validation function in which I unset the property. The trick is to actually unset it, because it's only validated with an isset() call.

function mymodule_webform_client_form_FORMID_alter(&amp;$form, &amp;$form_state, $form_id) {
  array_unshift($form['#validate'], 'mymodule_validate_FORMID');
}

function mymodule_validate_FORMID(&amp;$form, &amp;$form_state) {
  unset($form['submitted']['FIELDNAME']['#needs_validation']);
}