More pass-through fixes

Playing with [ghc-make](https://github.com/ndmitchell/ghc-make), I found two more situations when arguments are not passed through when they should.

I also cleaned up the relevant part.