You are over thinking this. An object is only "created" once! That is what I meant by relcreatedate. If it is dropped, then it is deleted from the catalogs. If it is modified, then it does NOT affect the creation date. Everything else is superfluous.
It is also not unusual for tables to have an end of cycle in certain application, hence the need to be dropped after a certain time. EG. Tables that track data only for a specific year.
Since PostgreSQL already tracks when tables are vacuum, auto vacuumed, analyzed and auto analyzed ( pg_stat_all_tables ), I don't see why it is such a big deal ( or so hard ) to track when an object is created. It should be a very simple patch to the catalogs.
It seems to me it would make sense to have one as it would facilitate auditing of when objects are created. In addition, it would also facilitate the dropping of objects that have exceeded a certain age.
EG: SELECT 'DELETE TABLE ' || relname || ';' FROM pg_class WHERE relkind = 'r' AND relcreated > current_timestamp - INTERVAL ' 1 year';
Adding that column should be relatively easy and would not break backwards compatiblity with previous versions. -- *Melvin Davidson*