While we're on the subject of new system catalogs, how about a many to many
catalog like this:
pg_depend (oid obj, oid dep)
That maps the oid of a system object (such as a constraint, index, function,
trigger, anything) to all other system objects that are dependent upon it.
Although it may take a bit of work to implement, it will trivialise
supporting CASCADE/RESTRICT on DROP.
Chris