moonwyrd ghc provides both the compiler and the shared (dynamic) standard libraries. ghc-devel has the static libraries. When you compile a dynamic application (e.g. pandoc), it will like against the shared libraries in ghc, making ghc a runtime dependency of the package. Admittedly, I probably could pattern the ghc package a little differently to split out the shared libraries, but it currently follows the same splitting rule as all of the other haskell packages:
ghc -> shared libs and executables
ghc-devel -> static libs
So to answer your original question: Yes it is expected behavior, and sorry for the confusion.