I think GCSG's use of "preferred" is ambiguous here.  I think the are saying that they prefer foo.h to come first, not to put the system headers in foo.h, given that all of their examples put other includes in foo.cc after foo.h.  While include guards will prevent anything untoward, extra includes in header files remove the need for the include (if it is not needed in the header) from the use of the include, potentially causing some confusion.

Hence my preference for including these as late as possible, only in the files that actually need them...

but also not needing to drag this conversation out further