Even more testing:
I changed the widget for all 4 of my test attributes from Switch to CheckBox and retested.
Just like my testing using the Switch widget:
Field1 is required with initial value of 'No'
Field2 is required with initial value of 'Yes'
Field3 is not required with no initial value
Field4 is required with no initial value
When creating a record, I do not get any errors and Field2 is saved in the DB as '1' (Yes/On) and all the other fields are saved in the DB as '0' (No/Off)
I can update all the fields to Yes and save with no errors and update all the fields to No and save with no problems.
I only get the "Required" error when using the Switch widget and the attribute is set to Required and has a value of 'Off'
I agree with rocketman's final statements:
Not that it makes the slightest bit of difference here but I don't agree with you last argument. If I have an attribute with a choice list which is set as "required", I would expect the "required" to be fulfilled if any one item in the choice list is entered. A binary field should be no different - it is a choice list of yes or no and either option should fulfil the "required" option.
The "Required" option on a binary is however superfluous since it cannot be empty
And to set the record straight, I have un-checked the Required option for all my Yes/No attributes.