Имхо, читается зато прям сразу. И ещё ты как бы сразу инициализируешь переменную в ноль (вдруг инициализация мусором произошла) и только потом туда записываешь сдвинутые байты логическим или, который этот мусор не вычистит. Возможно автор хотел от этого защититься.
Но на самом деле, когда у тебя есть uint16_t сдвинутый на 8 бит, то освободившиеся 8 бит все равно будут нулями и все это излишне. Нужно просто написать какнонично и все будет норм)