React 0.14.8 correct sets the defaultValue for `<select>` when using `<optgroup>`:
https://jsfiddle.net/6v8cnowo/

However, 15.0 RC2 defaults to the first `<option>`:
https://jsfiddle.net/p2ctcgwj/1/

I'm not very familiar with the React codebase, but I suspect it has something to do with a change made in 1dca72e, specifically this line: https://github.com/facebook/react/blame/master/src/renderers/dom/client/wrappers/ReactDOMOption.js#L35

ReactTestUtils.Simulate.change(node);
    expect(node.value).toBe('giraffe');
  });
  it('should warn if value and defaultValue props are specified', function() {
    spyOn(console, 'error');
    ReactTestUtils.renderIntoDocument(
      <select value="giraffe" defaultValue="giraffe" readOnly={true}>
        <option value="monkey">A monkey!</option>
        <option value="giraffe">A giraffe!</option>
        <option value="gorilla">A gorilla!</option>
      </select>
    );
    expect(console.error.argsForCall[0][0]).toContain(
      'Select elements must be either controlled or uncontrolled ' +
      '(specify either the value prop, or the defaultValue prop, but not ' +
      'both). Decide between using a controlled or uncontrolled select ' +
      'element and remove one of these props. More info: ' +
      'https://fb.me/react-controlled-components'
    );
    ReactTestUtils.renderIntoDocument(
      <select value="giraffe" defaultValue="giraffe" readOnly={true}>
        <option value="monkey">A monkey!</option>
        <option value="giraffe">A giraffe!</option>
        <option value="gorilla">A gorilla!</option>
      </select>
    );
    expect(console.error.argsForCall.length).toBe(1);
  });
  it('should be able to safely remove select onChange', function() {
    function changeView() {