My knowledge of precisely how haddock works is somewhat fuzzy in that it arises from a series of discussions a couple of years back.
My observation was mostly that I run 'cabal install' it goes through all the modules building my .hi files, etc. Then I run cabal haddock and it spends all that time redoing the same work, just to go through and get at some information that we had right up until the moment we finished building.
I'm not wedded to bolting the information into the .hi files being the solution, but the idea that we could avoid redoing that work is tantalizing. I'm mostly trying to avoid redoing all the same work twice in the build cycle of the average user.
If there is an alternative strategy, such as, oh, I don't know, making haddock able to hook in plugin-style late as we're generating the .hi file to spit out what it needs to something else and interrogate/rename/whatever it needs the rest of the GHC API I'd be totally open that as well.
-Edward