So I've been thinking about this some more, and if we remove `config.seed =` then it makes a couple of things _impossible_:

* Extension gems can't set the seed.
* Folks who use a preloading/forking runner (e.g. spork, spring, etc) can't re-seed between runs. For example, see jonleighton/spring#113.

From a purity/theoretic standpoint, I agree it would be preferable to set the seed before any user code is loaded, but in practice, I'm not willing to make these things impossible.  I don't personally use any extension gems that set the seed or a preloading/forking runner, but I have a responsibility to consider the needs of all users.  Here are some alternate solutions we can consider:

* Have RSpec leave the global seed alone, and instead create a single instance of `Random` and use that for group/example shuffling.  You (or anyone) could then author an extension gem that sets the global seed early like you want.   This kinda appeals to me as a "hands off" approach.
* Wait to set the seed until all spec files have been loaded (but before the groups or examples have been ordered or run).  We would document that it is set at that time, so users would know they shouldn't do things that depend on randomness while their spec files load if they care about the randomness being reproducible on a subsequent spec run based on the seed.