Currently, the role labels are static strings in the DB and in the Role class. This means that whenever we modify the list of possible roles, we have to update 2 locations to reflect that change. The DB is the authoritative list of roles, the Roles class should load the possible roles from the DB. For an example, OrgFactory gets the list of entitlement labels from the DB.
This isn't a bug. We need to have some way to reference the Roles that are stored in the DB. Either that is with static strings used to do a lookup, or with static objects retreived from the DB. Either way, when you add a role to the DB, you will need to also add a line of code to add that concept to the Java code. This isn't a big burden and it is unavoidable, so I am closing this bug.