Why Postgres uses a custom defined index instead of the default one on the primary key
Due to padding for memory alignment, adding a small column to an index can often take up no extra room.  The index might even be smaller, if it is fresher and so more densely packed.  And even if not, the cost estimate for looking up one row in an index is very weakly dependent on index size, so the cost is likely to be a tie between the two indexes.  When there is a tie between indexes they are broken arbitrarily, and it seems like it is the one created most recently that is usually chosen.