| Interesting thing though, it's the same on 6.4.1.
|| Wasn't this brokenness introduced in 6.6, but rather has lingered in
| ghc for a while, or since the introduction of GADTs, at all?
No it's always been broken. I finally made GADTs and type classes work together in the HEAD a few months ago, using implication constraints for the first time.