Yup, I have arleady setup all the things you mentioned : the very first include in every cpp, classic #ifndef/endif guards, no PCH includes in any headers (only cpp's). Choosing proper PCH location in Build Options makes different (using 'Generate PCH in a directory alongside the original file' speeds up like 2x, so somehow PCH works).
-------------- Buduj: EditorFull in BarokEngine (compiler: GNU GCC Compiler)---------------
[ 0.0%] Pre-compiling header: build.h
.... another gazilion cpp units ;P
[100.0%] Konsolidacja plik wykonywalny: HostApp.exe
As I imagine, there should be only that cpp files in the log that were actually changed ? I'm aware of changing header file forces the recompile all dependcies.