I like the idea of keeping it all, forever. Storage is cheap. No argument there.
But that’s a very different requirement from a real-time database being used to collect, analyze and display the data in the HA UI. We have (at least) two different sets of requirements here. A one-size-fits-all solution will always be less than ideal.
Think of an airplane’s flight data recorder. Thousands of datapoints are tracked, but only for something like 30 minutes. There are lots of other data about that airplane which are extensively documented and tracked - how many landings each tire has performed, where each part came from and who was on shift at the factory when it was made, any problems encountered during the flight, the flight crew’s rest cycles between flights, it’s all retained. But not in the same database.
Without really realizing it, I’ve already developed my own workaround. There are data I want to be able to mine later, in case I get new insulation or an HVAC system, as in the example above. Those data never even make it to the database.
I log each on/off cycle of each zone in my HVAC system, as well as daily summary data like how long each zone was calling for heat or cooling, and the total daily runtime of my boiler’s burner. These are appended in real time to a number of text files. These text files are renamed monthly. My routine backups pick them up and archive them on my NAS. I can pull them into any software to analyze them any way I want.
This leaves the HA database for short-term and real-time data only. Many of my entities I don’t care about at all, and I exclude them from Recorder. The rest are only kept for a few days. I can delete the database without much chagrin.