Here's a few more points to consider:
enum type is relatively non-portable. You could probably use an array in postgresql, and some other databases have such structures.
enum type allows integers to be inserted, which act as an index to the enum type. I.e. you define an enum with types 'red','blue','yellow' and insert the number 1, you will be storing one of those colors. Not a big deal, more something to keep an eye out for.
enum types are less obviously pulled from the dataset. You have to use a desc tablename to get the output and parse it to get the actual options. So, most people just hard code the options into their apps. This can make upgrading / changing an application a nightmare, so at the least, abstract out the enum entries into an include file so there's only one place that has them. OTOH, if they are entries in an FK table, then all you do is update the table and cello, you've got a new entry in the app on the fly.
Remember that enum was pretty much invented because back in the day, MySQL didn't have FK->PK relationships, and this was a workaround. Now that reason for being has pretty much disappeared.
There are some other reasons I can't recall right now for not using them, but it's not a critical issue. I would recommend that if you're not comfy with relational theory, then you should get so before making up your mind on this or any other decision about db design.