#### 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).

const node = ReactDOM.findDOMNode(stub);
      ReactTestUtils.Simulate.change(node, {target: {value: '2'}});
      ReactTestUtils.SimulateNative.blur(node);
      expect(node.getAttribute('value')).toBe('2');
    });
    it('an uncontrolled number input will not update the value attribute on blur', () => {
      const node = ReactTestUtils.renderIntoDocument(
        <input type="number" defaultValue="1" />,
      );
      node.value = 4;
      ReactTestUtils.SimulateNative.blur(node);
      expect(node.getAttribute('value')).toBe('1');
    });
    it('an uncontrolled text input will not update the value attribute on blur', () => {
      const node = ReactTestUtils.renderIntoDocument(
        <input type="text" defaultValue="1" />,
      );
      node.value = 4;
      ReactTestUtils.SimulateNative.blur(node);
      expect(node.getAttribute('value')).toBe('1');
    });
  });
  describe('setting a controlled input to undefined', () => {
    let input;
    function renderInputWithStringThenWithUndefined() {
      class Input extends React.Component {
        state = {value: 'first'};
        render() {
          return (
            <input