Yes, that alone without any other changes would be a marked improvement and could be implemented in many places, pg_operator is a good example.
... but there is some circularity especially with respect to type definitions and the functions that define those types. If you changed the definition of prorettype into a regtype then bootstrap would try to lookup the type before the pg_type entry exists and throw a fit. That's handled in SQL via shell types. If we wanted bootstrap to be able to handle this then we'd have to make two passes of pg_type, the first to create the shells and the second to handle populating the serialization functions.
Unfortunately types and functions tend to be the more volatile areas of the catalog so this particular circularity is particularly vexing.