I'd say that it's bad to put #pragma once in your minimal set, since it's nonstandard. Why not use plain old include guards?
For me, container_of() is also indispensable. Although maybe it's on the level of 'errno' as being "not really a dirty macro".