It can be useful to have a large address space, even if you don't have enough hardware to actually populate the whole thing.
For example, you might split the address space into smaller sections (executable, read only, read/write, shared, etc) which immediately cuts down the space you have. Or you might decide that your method for allocating space is to pick a random part of the address space, and check if it is taken (or perhaps something slightly cleverer). In this case, you will get better performance if there aren't as many collisions.
Or you might have some highly drive-abstracted representation where every addressable thing in every version of a filesystem-like dataset has its own address. No one’s asking to do that now (as far as I know), but if we get 128 bits I bet we’ll come up with ways to use them.
For example, you might split the address space into smaller sections (executable, read only, read/write, shared, etc) which immediately cuts down the space you have. Or you might decide that your method for allocating space is to pick a random part of the address space, and check if it is taken (or perhaps something slightly cleverer). In this case, you will get better performance if there aren't as many collisions.