Yes they are more readable ints.
In regular C++, an enum value is int but UE4 seems to use TEnumAsByte container for enum variables, thats why it switches on a byte.
A byte can hold values between 0 and 255. If you try to make it 256 it’ll loop around and start back on 0. An int can usually hold values between 0 and 4.3 billion. If you go over the max for an int they too loop around. The difference comes from byte only using a fourth of the memory that an int uses.
Apart from just being easier to read it’s easier for someone else to use your code since all the valid values of your enum is defined. In Ramas example you know you can set it to VE_Dance, VE_Rain, VE_Song and VE_Max. If you only have an int there’s no telling what valid values there are.