Hmm this might be a PySide bug... It should probably fail if you pass something other than a boolean, though I'm not sure. Oftentimes you want to coerce something to a boolean.
@cmaureir thoughts?
The issue is calling QCheckBox::setChecked(Qt.Unchecked) doesn't fail (I think it sets the checkbox to checked).