Looks like inside each service module (let's say datastore and pubsub) we import _helpers.set_default_project.
If that's the case, I'd expect the following code snippet to have different projects set for the different services:
from gcloud import datastore, pubsub
datastore.set_default_project('datastore-project')
pubsub.set_default_project('pubsub-project')
assert 'datastore-project' == datastore.get_default_project()
assert 'pubsub-project' == pubsub.get_default_project()
If that's not the case, we need to figure out some other way of doing this... maybe moving the helper method into the top level as gcloud.set_default_project()...