If you have an item with a state description metadata and you want to see the formatted state in a widget then you have to use item.displayState instead of item.state. Even better, because of the way the UI gets data from the server displayState will occasionally be empty if it is the same as the state so there’s a short cut to make sure you get the display state with a fall back to the regular state: the @ sign.
No, it’s very much an intentional choice to optimize the UI performance. There’s no need to send completely redundant between the server and client when a perfectly reasonable client-side solution exists.