If you feel that "The exact meaning of the codes is release dependent" is unnecessarily vague, that sentence should be changed.
Okay, that's a good point, will do so in the next patch.
A "bitmap of reasons" to me would mean that each reason is a bit, and if two reasons
apply at the same time, both bits are set. But that's clearly not what you mean, because "a column has a new data type" is not the same as "the table has changed persistence" and at the same time "a column has changed a default value".
Perhaps "a bitmap of reasons" should simply become "the reason".
No, it really is a bitmap, as you can get a reason of "5" for example, if you change the persistence and a data type in the same ALTER TABLE command, e.g. alter table foo set unlogged, alter id type bigint; But I wrote it wrong: they should be 1,2,4,8.