Да ну. А если мне нужно задать значение всем ногам порта GPIO, причем одновременно? smth.val = mask, и все. Это просто пример. Обратная задача, нужно перебросить значение регистра по модбасу. Без val придется делать приведение типа, что как раз является говнокодом.
У техасских инструментов вся работа с периферией построена на union и битовых полях. Можете отрубить руки им, но скорее всего отрубят вам.