http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60570
--- Comment #3 from joseph at codesourcery dot com <joseph at codesourcery dot com> --- http://www.open-std.org/jtc1/sc22/wg14/www/docs/dr_412.htm gives an approved change (presumably to appear in C11 TC2) to stop #elif conditionals from being evaluated when they don't need to be, so it looks like we should in fact change this (for all standard versions, given it's being deemed a defect).