Я сильно подозреваю, что это главным образом потому, что MSVC не пытается поддерживать C99, и, скорее всего, никогда не будет. В одной лодке есть несколько встроенных компиляторов, но они вряд ли достаточно распространены, чтобы иметь большое значение в индивидуальном порядке. AFAIK все остальные, по крайней мере, пытаются реализовать C99 в максимально возможной степени.
На практике нет особых причин не использовать выбранные функции C99, но если вы собираетесь учиться и писать в одном стандарте C, и только в одном, то это должен быть C89.
Кроме того, возможно, довольно сложно и запутанно написать вводный текст на языке C, который начинается со слов: «Хорошо, есть два разных стандарта, и я собираюсь использовать три разных цвета текста: один для C89, другой для С99, и один для обоих ". Также, вероятно, сложнее написать о С99 для всей книги, а затем «забрать» многое из того, что вы сказали в приложении о С89, чем написать о С89, а затем добавить к нему в приложении о С99 .
Все спекуляции, хотя. На самом деле вам нужно спросить авторов книг, которые вы читаете (или, возможно, в некоторых случаях пойти против всех ваших программных инстинктов, и прочитать предисловие ; -))