I guess the way to solve this disease is just to use Enum for what they are supposed to be used for. Which is storing a state, that's it.
This article really lacks of OOP concept. In the first example the enum is a property on the 'vehicule' object, it would be way better to add all the properties needed to that class instead of creating a weird 'VehicleTypeTuple' struct...