Oh #pragma once - that old chesnut: if you have a few hours you can follow the various discussions on stackoverflow on it. I think it is at least enlightening to read through this answer on why it is *not* part of the ISO C/C++ standards:
http://stackoverflow.com/a/1696194
I will note that on MSVC people have found compile-time improvements by using #pragma once - although it tends to only be noticeable in pathological cases. Still - an important feature for people going through the edit/compile/debug cycle.
My personal opinion on this is if there is a change to be made, it should be to use both: prepend #pragma once to header, and still include the #ifndef/#endifs that are present: it takes advantage of the speedup for compilers that don't automagically recognize #ifndef/#endif header guards (e.g. non-GCC compilers), while simultaneously it doesn't rely on non-standard compliant compiler features (which I'll argue we don't want to introduce *new* non-standard things into the codebase).
I'm all for doing things that decrease bugs due to bad copy/paste errors (especially since I seem to make those types of mistakes all the time), but relying on any compiler feature that is not part of the standard should be be *very* carefully considered. We support too many platform/compiler-combinations to take such things lightly.
Doug