That last sentence about the dropped columns is confusing to me:
+ <para> + Columns which have been dropped from the table also contribute to the + maximum column limit, although the dropped column values for newly + created tuples are internally marked as NULL in the tuple's null bitmap, + which does occupy space. + </para>
So the dropped columns matter, but they are null, but the nulls matter too. What are we really trying to say here? Maybe this:
Columns which have been dropped from the table also contribute to the maximum column limit. Moreover, although the dropped column values for newly created tuples are internally marked as NULL in the tuple's null bitmap, the null bitmap also occupies space.
Both for my edification and as a potentially important documentation detail, do operations that rebuild the table such as CLUSTER or pg_repack reclaim the column space?