You can use it, for example, when you have multiple files with the same structure. If there is no spec, then readr will try to guess the data types. It can take a long time and overall it's a waste of time if you already have a spec.
Another use-case is to take this spec and update it to suit your needs. Every once in a while it is useful if readr can't guess the data type correctly (e.g., with datetimes since it's a mess). You then have a spec that you can update very easily to handle this one specific column.
There are probably other use-cases, those two are the ones I had come across in my work.