We have noticed some errors, which I think could be related with this question.
When having the logs on "developper" level, and trying to add a new function to an existing service, there is an error message with a trace indicating something like this:
"External function parameters: Invalid OPTIONAL value specified"
When trying to remove the VALUE_OPTIONAL from the webservices, we do not get the afore mentioned error:
'summary' => new external_value(PARAM_RAW, 'Task summary'
, VALUE_OPTIONAL, ''),