I think the confusion arises between how they are represented/used in the generated API vs. how they are stored by the underlying Badger.
They are stored as string property of the node. This can be seen by looking at the underlying DQL schema using Ratel.
They are represented/used in the generated API as a special enum case limiting input and output results.
This is further illustrated by changing the GQL schema and changing the ENUM options. What gets changed? Nothing on the database side would change. The only changes would be in the representation that is used in the generated inputs.