I can see how this might be a bit convoluted.
This page
http://docs.mongodb.org/manual/reference/resource-document/#resource-document might help - it discusses when defining resource for a role how it may interact with the scope it's granted on.
The following note may clarify:
"When granted a role, a user receives all the privileges of that role. A user can have several roles concurrently, in which case the user receives the union of all the privileges of the respective roles."
Also note:
"For a user-defined role scoped for a non-admin database, the resource specification for its privileges must specify the same database as the role. User-defined roles scoped for the admin database can specify other databases."
You cannot define a role with privileges that apply to resource outside of the resource that it's granted on.
"Roles always grant privileges and never limit access. For example, if a user has both read and readWriteAnyDatabase roles on a database, the greater access prevails."
I think you should simply ignore the issue of where roles are stored - that is simply an implementation detail and is not related to the scope of the role at all.
Asya