Basically, when declaring the return type, if you need type inference, use auto, but if you don't, then put the explicit type so that it is clearer in the documentation. druntime is unlikely to need type inference, as its functions generally return simple, explicit types rather than depending on the types passed to them like happens often in Phobos.