Range-based partitioning is like an amoeba.
You split when a partition gets hot, you merge when things cool down, and you move the partition across nodes (and transitively the data, if needed) when you want to grow beyond a single machine.
The best part of range-based partitioning is that it sits in the middle between hash and static approaches. It avoids the randomness of hash ownership and the heavy metadata burden of static ownership.
That’s why, for stateful workloads, so many systems, operating at scale, prefer range-based ownership.