Actually, this is a thing I pound on often. What is the granularity of REST-based services? We can imagine that you have this domsin object (Domain meaning it is an enterprise domain object that is complex and aggregate in nature)
User 1->* Accounts 1->* Preferences
User 1->* Accounts 1->* ContantInfo 1->* contact options (address, phone, sms, email, etc)
Now, would we front this with the classic methodology of Microservices? Meaning we get a service for each entity? That sounds horrible to me, for one MAIN reason, how do we assure data consistency, when we want to add a new User, Account, and Preference? If we have three services, that would require three calls to get a single thing done. We could create three data/CRUD services and one aggregation service to do that for us, but the aggregation service would still be doing an underlying three phase commit! Which sounds horrible to me.
I would state that domain based services are easier to maintain, own, and version. It keeps the domain and its data ACID/BASE without having to do scary reconciliation stuff later on. With this, you would have more control on the actual number of services created.
The other way to see this is, well what if the services are not related at all - other than to user or some main high level concentration point. We do not want all services clumped under user or the concentration point.
In that case, yeah create them as simple and as small as possible - where the domain exists and do not clump/slam related services into each other.