The fully qualified name of the digest function template (https://dlang.org/phobos/std_digest_digest.html#digest) is std.digest.digest.digest. This is because std.digest is a package, with a module named digest in it, and the function digest inside that.
I think it's reasonable to have std.digest.digest. Even though there's repetition, it's clear that the first digest is a module, the second is a function name. But there's no reason (especially with the advent of package.d) to have a std.digest.digest module.