I have found Haskell just has so many of these "paper cuts" that I have just walked away.
Before using stack I was always afraid to come back to a Haskell project after a few months, since using stack that's not a problem. Also, you don't have to worry about different machines, because stack is ensuring that you have the pretty much same build environment (at least the Haskell packages will have the exact same version).
Stack also recently added support for using Nix to solve the problem fixing non-Haskell dependencies for a project.
Why have I never heard about it in all the guides and StackOverflow answers I've had to search through when trying to escape Cabal hell?