The form.checkbox view helper works in an unexpected way because it creates two, rather than one <input> elements.
This is a problem when using markup like
<label> <f:form.checkbox ...> Checkbox name </label>
as one ends up having two <input>s inside the <label> which is invalid HTML. One has to make the effort to create id and for attributes for both tags to get things working correctly. This could be simpler.
In the long term it may be worth considering to add explicit support for <label> tags to the form field view helpers, to encourage label usage by offering straightforward support for it from the templating engine.
UPDATE: The solution would be to render the "automatically generated" hidden fields for checkboxes and select dropdowns in the hidden fields section at the beginning of a form