Currently, if a user has any role that sets a permission to positive, then they have that permission, regardless of higher roles that set the same permission to negative. This is clearly impractical, and leads to the issue that it is impossible to mute a user in a restricted channel. In servers where all users have a role that allows them general access, and by default new users cannot chat until they are given this role, it becomes impossible to mute anyone, server-wide, as no matter the hierarchy of the mute role, their lower role allows them to chat.
A simple solution is a tickbox next to permissions for a role, that says "override lower roles?". This would then ignore settings for any lower roles for that permission, and a user would receive the permission of the highest role that overrides those below it, or, if there are none, then as normal.