I've been meaning to ask about this as well. It also forces tools like
ghc-mod and hdevtools to be cabal-aware, which is an unnecessary source
of complexity IMO.
GHC certainly has enough information to generate these macros, as it
knows which packages (and versions) it's compiling against.