cc and ld are part of the build process, and the build process is meaningfully parallel. (Actually, modern ld /is/ meaningfully parallel, especially for link-time optimisation.) How "meaningfully parallel" a task is often depends on how you choose to view it.
Yes. So do most (all?) parallel programming languages. When Go runs tasks in parallel, it runs them on different OS threads - a language and its run-time libraries don't get to run on more than one core without OS support.
Languages and their run-times or VM's can have a kind of cooperative multitasking within one thread, where there are separate logical executions but only one is running at a time. These can be useful, of course, and are often supported (with names like coroutines, async, generators, greenlets, fibres - details and names vary). But they are not "meaningful parallelism" in that they don't do more work in the same time, they simply give you other choices of how to structure your code.
The details vary, but all parallelism in languages is done by using OS processes or threads, with some kind of inter-process or inter-thread communication (queues, pipes, locks, shared memory, etc.).