In processing core every parameters can be optional but in scripts there is no way to define a parameter as optional and in modeler only layers can be optional.
For script, I propose a notation like output, if a parameter token starts with optional the parameter is optional.
For model, I propose to add the required combobox to all parameters.
This proposition does not change the value setter.
This proposition can fix the issue http://hub.qgis.org/issues/5488.