#### Type
`inconsistency` for common use cases.
`bug` for projects relying on correct DOM emissions.

#### Description
It's unclear to me if the following is a known issue or not.
Take in consideration the snippet below:
```jsx
<input type="checkbox" defaultChecked={true} />
```
#### Current Behavior
Setting the `defaultValue` prop on inputs of other types sets both the `value` and `defaultValue` attribute on the DOM element.

When setting the `defaultChecked` prop on inputs of type `checkbox` only the `checked` attribute is correctly set, leaving the `defaultChecked` attribute unchanged.

#### Expected Behaviour
Like mentioned above, the expected behavior would be for the `defaultChecked` prop to set both the `checked` and `defaultChecked` attributes on the corresponding DOM node (like it's the case with the `defaultValue` prop).

if (
        (value === 0 && node.value === '') ||
        
        node.value != value
      ) {
        node.value = '' + value;
      }
    } else if (node.value !== '' + value) {
      node.value = '' + value;
    }
  }
  if (props.hasOwnProperty('value')) {
    setDefaultValue(node, props.type, value);
  } else if (props.hasOwnProperty('defaultValue')) {
    setDefaultValue(node, props.type, getSafeValue(props.defaultValue));
  }
  if (props.checked == null && props.defaultChecked != null) {
    node.defaultChecked = !!props.defaultChecked;
  }
}
export function postMountWrapper(
  element: Element,
  props: Object,
  isHydrating: boolean,
) {
  const node = ((element: any): InputWithWrapperState);
  if (props.hasOwnProperty('value') || props.hasOwnProperty('defaultValue')) {
    const initialValue = '' + node._wrapperState.initialValue;
    const currentValue = node.value;