It is by design that the role names are case-sensitive because role names could be in locale-dependent languages. Changing them to lower-case may not work in different languages. For your problem, you should make sure the role assigned to your user has the exact role name.
I created a role named "SuperAdmin". Then i assigned that role to a valid user. Next i tried to check in my controller for role named "SuperAdmin" (exact case with role name stored in backend). But that failed because CAccessControlFilter.php::setRules() lowercase the string supplied from the controller.
So, my thoughts are, either when a new role must be lowercased before stored in the backend (so, when CAccessControlFilter.php::setRules() lowercases the string supplied it will return true and we have a case-insensitive RBAC), or CAccessControlFilter.php::setRules() must not lowercase the rule name so we have a case-sensitive RBAC.
I have no clue what's best design, however at the moment it is very prone to error as when you define a role you must type it lowercase or else it doesn't work (and the framework doesn't avoid such errors).