Inheritance of "dictionary tables"
Using one supertable Tag will give you less tables in your schema, but you will basically lose guarantees about referential integrity. If one column in another table must have one 'colour' value, you add a referential constraint to the table 'colours' (one of your dictionaries). If you have a big one, you can have one column that should have one colour to have a value 'wide', because this value is also in your dictionary, even if it is not a colour.

With one super-table, you move the responsibility of guaranteeing referential integrity from the database to your application (or middleware). If you do so, you should make sure there is no other way to change values in your database than through your application.

I don't see any advantage on having an inheritance hierarchy. Even if your structures look all the same, their meanings are not at all the same. You could gain some operational advantage somewhere (like having only one procedure to do the 'maintenance' of the Tag table), but I guess you could do the same using just table names as parameters to a function call or method somewhere in your application.

I'd not really care much about performance. Having a number of small 'dictionary' tables (lookup tables) won't harm you.