It’s a mystery to me why documentation isn’t uploaded by default when uploading to Hackage. It’s very easy to do so, it’s just obscure.
dir=$(mktemp -d dist-docs.XXXXXX)
cabal configure --builddir="$dir"
cabal haddock --builddir="$dir" --haddock-for-hackage --haddock-option=--hyperlinked-source
cabal upload --publish -d $dir/*-docs.tar.gz
If the Cabal tool would simply make this more convenient/well-known and everybody uploaded their own built docs, I think the problem of docs not building on Hackage would be a non-issue.