Replying to Ryan J Ollos:
It would seem that the most straightforward way to avoid confusion would be to prevent users from adding a permissions group that differs from a defined action only by case.
Fixed in [14359].
Further, to handle the scenario in which a component is enabled after a permission is granted we should provide a more accurate error message, showing the actual casing of the permission that has already been granted.
I haven't found a way to implement a fix that is not overly complex. It's an edge case so I think we are okay to leave the existing behavior.
Other issues discussed in this ticket will be addressed in #12242.