When using the gcc compiler, it will link and compile in one step. However, it appears to be idiomatic to turn source files into object files and then link them at the end.
The two big reasons at the top of a list of many reasons for me are: