Also in this line of thinking: hosts can be assigned an entire subnet, and applications can get individual /128s. This way, a single host can provide a bunch of independent services, which can be broken out into real machines as the system grows without renumbering.
I think the more important use case is tempaddrs. You don’t have to use the same address all the time, or even at the same time. You can just make up random addresses for each connection if you like, though in practice the rotation is much slower.