> There exist pros and cons. The C preprocessor *requires* that sizeof> is a built-in *macro*, so that it can be used in #if conditions.

Ahem... No, it doesn't. Unless you do something really perverse like

#define sizeof <whatever>

sizeof will not be defined as a macro, and any non-macro identifier
used within #if other than as an operand to "defined" will be replaced
by 0.
[After squinting at the various C standards and checking with
committee members, I found that the C preprocessor does not know
about any keywords at all, so it treats sizeof and int as ordinary
names. This allows occasionaly useful kludges like #define short int
-John]