WiseLord писал(а):... всегда старался писать на ANSI C.
ANSI - это лишь американская контора, а ISO - она же International, как ни крути. Кроме того ANSI C - это уж и вовсе 1989 год, после которого
ANSI перестала заниматься стандартом Си, уступив эту роль ИСе (
ничего, что я ее просклонял? 
)
Так что получается, что стандарт-то один, просто он поменялся в 1999-ом и, следовательно, после 1999-го писать в строгом соответствии со стандартом означает - писать согласно ISO/IEC 9899.
WiseLord писал(а):Хотя и тут, думаю, реально, внутри, это какой-то целочисленный тип, к которому приводятся прочие типы при булевых операциях.
"Реально, внутри" так происходит и в Паскале и в любом другом языке, так как ЦПУ ничего кроме чисел перемалывать не умеет. Флаги в нем, разумеется, есть, но они все относятся только к нему самому, и не являются данными исполняемой программы.
Rtmip писал(а):Но ведь никто не мешает в CodeVision писать "по правилам"

Сам CodeVision и мешает, так как правил этих не умеет. В разных местах велись целые столетние войны об этом, и на Электрониксе, и на ресурсах менее серьезных, вывод один - CodeVision не только имеет расширения, противоречащие стандарту, это бы еще куда ни шло, он самого стандарта не реализует. Впрочем, это не все его недостатки.
Rtmip писал(а):И даже можно макросы переназвать по аналогии с Винавром, для переносимости лучшей.
Но, например, в ИАРе они тоже не очень совпадают с Винавром и никто не возмущается

Далеко не все инклуд-файлы и макросы являются частью стандарта. Все, что сверх стандарта, можно определять и переопределять как угодно, нимало не нарушая стандарта. Вот если кто-то bool переопределит как "enum {false=-1, true=1};" вот это уже будет нарушением.