I noticed that the table AM abstraction introduced the symbol HEAP_TABLE_AM_HANDLER_OID, although we already have a convention for defining symbols automatically for builtin functions, which in this case is (currently unused) F_HEAP_TABLEAM_HANDLER.
It seems a wart to have two symbols for the same function (seemingly accidentally). I suppose it's unacceptable to remove the non-standard symbol since it's been referred to in code for a while now. We could remove the unused (in core anyway) standard one by arranging fmgroids.h to use explicit symbols from pg_proc.dat where they exist, as well as prevent such symbols from being emitted into pg_proc_d.h. But then again there is no guarantee the standard symbol is not being used elsewhere. Thoughts?