There can only be a single server providing a service using a given graph resource name. That server can have an unlimited number of clients. The clients can be distributed amongst different nodes or in the same node. The clients can all have individual settings for persistence.
All you need to achieve this is to create additional rospy.ServiceProxy()
objects or ros::ServiceClient
objects.
Note that the client library (rospy vs. roscpp) used for the service server will define exactly how client requests are queued/ handled. The rospy docs say " Each inbound request is handled in its own thread, so services must be thread-safe." In roscpp, services are handled with callback queues and spinning (just like topics).