I may be mistaken, but I believe under the hood Postgres enums work in a very similar way to this, only the strings are interred instead of duplicated across your tables.
Yes, that's true. I'm paying the small duplication cost in exchange for removing enums' cumbersome limitations. Not saying I never use them, but I usually end up regretting it when I do :)