FWIW I think it's not too problematic if basic RNG constructors are not nothrow.  After all, you typically create an RNG at a quite "high level" point in your program.  The important thing is that once it's been initialized, it can be passed to the internals of your program and used in `pure`/`nothrow`/`@safe` code.