Why is the size of an `enum` always 2 or 4 bytes (on a 16- or 32-bit architecture respectively), regardless of the number of enumerators in the type?

Does the compiler treat an `enum` like it does a `union`?