I just submitted a pull request for true byKey and byValue ranges.
https://github.com/andralex/druntime/commit/cd7b477b83cc8a75a90258bd2ab63fa8c92ba10b
Over time I plan to slowly but surely migrate stuff from the opaque
implementation in druntime/src/rt/aaA.d into the templated
implementation in druntime/src/object_.d. The new implementation may
preserve opacity partially or totally, but would have a lot to gain from
direct/inlined calls to the hash function.
This is the sort of thing that is good to migrate from the arcane
implementation in the bowels of the compiler, into the standard runtime
library.
Andrei