A report could be launched from UI or programmatically (i.e. as described here).
The ‘Default’ works only in UI:
When you run a report with parameters, the dialog intended to input them appears.
If a parameter has default value the corresponding field will not be empty.
Regarding the ‘Required’:
In UI the required parameter is presented by mandatory field, so you cannot run the report without filling it.
If you launch the report programmatically and do not define the required parameter, it leads to exception.
So, how it works on boolean:
In UI boolean always have default value. As the corresponding checkboxes in UI have no third state, the default value is ‘false’ when unchecked.
Setting the ‘Required’ has no effect in UI.
But if you mark the parameter as ‘Required’, you have to specify it when launching the report from code.