I agree completely.

My implementation suggestion:
* Still allow string parameters for `AbstractRole` but trigger E_USER_DEPRECATED to ensure BC. Parameters should be typehinted to `RoleInterface` in the next major release when deprecated elements are removed (BC break).
* All kinds of parent references will be deprecated .
* Reverting the recently added multiple parents feature.
* Leaf checks in `getRole` by name as suggested by @steptom