Writing the I²C driver by hand was not principle, it was debugging: the available libraries abstract away the compensation registers, and when the humidity readings looked wrong I wanted to see the raw words and apply the datasheet's compensation formula myself.
The self-reset is the part that matters in practice. A sensor in a cupboard that silently stops reporting is worse than one that is obviously dead, so fifteen consecutive failures trigger a hard reset rather than a log line no one reads.