I developed this patch as part of the Datum-as-struct semi-proposal [0].
I think it can be useful independent of that.
Here, Datum was used to pass around an opaque pointer between a group of
functions. But one might as well use void * for that; the use of Datum
doesn't achieve anything here and is just distracting.
[0]:
https://www.postgresql.org/message-id/flat/8246d7ff-f4b7-4363-913e-827dadfeb145%40eisentraut.org