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

expect(node.options[0].selected).toBe(false);  
    expect(node.options[1].selected).toBe(false);  
    expect(node.options[2].selected).toBe(true);  
  });
  it('should support ReactLink', function() {
    var link = new ReactLink('giraffe', jest.genMockFn());
    var stub =
      <select valueLink={link}>
        <option value="monkey">A monkey!</option>
        <option value="giraffe">A giraffe!</option>
        <option value="gorilla">A gorilla!</option>
      </select>;
    spyOn(console, 'error');
    stub = ReactTestUtils.renderIntoDocument(stub);
    expect(console.error.argsForCall.length).toBe(1);
    expect(console.error.argsForCall[0][0]).toContain(
      '`valueLink` prop on `select` is deprecated; set `value` and `onChange` instead.'
    );
    var node = ReactDOM.findDOMNode(stub);
    expect(node.options[0].selected).toBe(false);  
    expect(node.options[1].selected).toBe(true);  
    expect(node.options[2].selected).toBe(false);  
    expect(link.requestChange.mock.calls.length).toBe(0);
    node.options[1].selected = false;
    node.options[2].selected = true;
    ReactTestUtils.Simulate.change(node);
    expect(link.requestChange.mock.calls.length).toBe(1);
    expect(link.requestChange.mock.calls[0][0]).toEqual('gorilla');
  });
  it('should support server-side rendering', function() {