#pragma once
allows the compiler to skip the file completely when it occurs again - instead of parsing the file until it reaches the #include guards.
As such, the semantics are a little different, but they are identical if they are used they way they are intended to be used.
Combining both is probably the safest route to go, as in the worst case (a compiler flagging unknown pragmas as actual errors, not just warnings) you would just to have to remove the #pragma's themselves.
When you limit your platforms to, say "mainstream compilers on the desktop", you could safely omit the #include guards, but I feel uneasy on that, too.
OT: if you have other tips/experiences to share on speeding up builds, I'd be curious.