The original reason for the cabal hack that prevented it from trying to reinstall template-haskell is that almost every time someone did this it broke, silently. Then five packages later something would use template haskell, and you'd get completely nonsensical error messages, and someone _else_ would get the bug report. Sure there might have been a scenario in which an expert who is working on ghc may want to reinstall the template-haskell to get a new point release, but TH has never worked across multiple GHC versions, and old versions shipped with very wide bounds.
Now, of course, maintainers and the trustees have the ability to retroactively narrow bounds (and you've already done so for template-haskell), so this view is dated. template-haskell should just be reinstallable like everything else now.
-Edward