
I wish there were some way of "fixing" the boost implementation before it becomes a C++ standard. Unfortunately some of the problems stem not from the implementation but from the overall architecture:
If you haven't seen this before, you can find the latest public version of the current standards proposal at: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n2032.pdf Brown et al. from Fermi Lab are aware of the problems in the current boost implementation and are preparing a reference implementation of the new standard. By the way, if I'm not mistaken, most of the problems you reported do not happen for the usual result_type's of double or uint32_t, so the situation is not as bad as it may seem (though it is not good either).
* too loose requirements on the random generators;
I tend to agree.
* restrictive seeding facilities;
I don't see the restriction. The template seeding method in Boost's MersenneTwister (and the current standard proposal) take a function object as the argument and seed the state with the return values from successive calls to this function object. This seeding method can be used to implement any conceivable seeding, including the one you favour.
* a clumsy (and inexact) interface between the random generators and the random distributions.
Could you elaborate on the perceived shortcomings?
Are these architectural issues up for discussion? I rather suspect that we've missed the boat on this.
You could contact the authors of the proposal or forward your comments to the standard working group (via the comp.std.c++ newsgroup, for example). Regards, Stephan