I was under the impression that the value of the singleton, at least in this usage, was the scope (global access) of the instance.
Please correct me where I'm wrong. Having access to a global instance, make the transfer of data very simple. Much like user settings, you can pass them thru to every method that needs them, or you can have global access to them.
This could be balanced against the option of having a datastore where each method does a lookup to find the needed data and the overhead of having to do a lookup and accessing data from a datastore vs having a global structure that stores the same.
Just like user settings or any other datastore, the singleton has one instance only.
For some apps, this could become an issue of memory usage vs the time it take to access a datastore, in addition to the need to update the same.