I think what would be nice would be if cabal could be the cabal project -> buck project translator.
That would allow any generic cabal project (e.g. ghc) to be buildable via buck.
The differences between a generic Cabal project and GHC amount to (currently) 1400 lines of extra stuff. I'd say most of this is to deal with stages, the RTS, and building a GHC libdir. I think that's quite reasonable, there's a limit to how much GHC-specific stuff you would want to move into Cabal.
Cheers
Simon