Však jo. Standardně kde je číslo, tam má být u8 nebo s8. Používat znaky na místo čísel je prasárna. Stejně jako třeba send( int bytes, uint8_t *data)
Ale historicky byl char jako signed. Amíkům to vyhovovalo, do plusu ASCII, do mínusu chyby. Zbytku světa to dělalo problémy, protože ISO8859-x a podobně. A využití bitu 7 jako indikátoru, že znak pokračuje v dalším bytu u UTF8 vyloženě použití signed char moc nepřeje... Konečně se to sjednotí a navíc na rozumnější variantě.
"it can be used to access raw memory occupied by other objects (object representation), but unlike those types, it is not a character type and is not an arithmetic type."
Tzn. std::byte rozhodně není určen na počítání. Na to se používájí typy cstdint tedy pokud chcete 8-bit tak uint8_t a int8_t alternativně pak uint_fast8_t, int_fast8_t popř. int_least8_t, uint_least8_t dle účelu.
Jinak samozřejmě samotnému C++ je to jedno, je to jen o programátorské konvenci a srozumitelnosti.