Если бы это были встроенные слова компилятора, то он мог бы проверить на запись одноимённую переменную и поругаться.
Но т.к. всё сделано через "#define", это чисто информация юзеру о правилах приличия в поведении с данным адресом.
Ну мож сэкономили они на интерфейсе чтения из конкретного регистра -- ты ж сам писал в него когда-то, запомни это значение в памяти и читай его при необходимости, а им окажется 3 цента выигрыш !

Может не только дефолтное значение читаться (для квалификатора __O его придумывать бессмысленно), а 0, -1, мусор, прошлое читаемое из этого региона, ну или самая жесть -- зависание.
Хотя обычно в последнее время чтение из недопустимых адресов возвращает 0, а запись туда игнорируется.