This seems to be related to the structure of the dispatch build system. It uses the host C++ compiler to link libdispatch, rather than swiftc -emit-library  and as such omits swiftCore (and swiftOnoneSupport in debug builds).
On Linux there's currently no separate libswiftDispatch.so (but @compnerd and I are discussing on apple/swift#19640 (review) that there probably should be). But as released libdispatch.so depends on swiftCore without linking it.
I don't remember exactly why we did it this way. I vaguely remember there were some circular build dependencies because some step in building swiftCore actually depended on the C-level dispatch library. Maybe in the last two years that has been untangled (or the dependencies are more explicit, so understandable to CMake now that the build has switched to being driven by CMake)? phabouzit (JIRA User) might remember.