GCC has some optimization for the inclusion guard, but they only work if the check is the outermost one. We're fairly inconsistent because of historical reasons, so we should ensure that we follow the same pattern in every public header.
We are going to switch to compiler annotations to determine the visibility of the symbols.
The FixedLayout layout manager object implements the same layout policy of ClutterGroup.