One of the ways ranges make sense is when you target legacy systems like libraries target Java 6-8, in some systems one module may depend on a specific version of a library other module uses too, if this other module depends on a range it will make wiring everything together much easier.