So you're saying if you replace the constants with literals it makes all the difference? It would be the same thing.
The reality is every single, separate module needs to define it's own permission constants that can be imported / referenced by a central controller. If you are designing a modular site with forums and photo galleries, each of those modules is likely to have it's own permissions. It is impossible for the controller to store those preferences within the same 16, 32, ..., n-bit field as the modules will step on each other.
The reality is that every single module will need to define it's own permission system to be used only within that module.
Every module will also need to provide a mechanism, designed by the controller, of exporting those preferences so that the controller, and not the module, can set preferences up for specific users or groups of users.
Encapsulation is not broken. The forum module's constants only exist within that module, the photo gallery module's constants only exist within that module, etc. The only thing the controller ever needs to know is that this particular user logged in right now has a forum permission of 0xA0F2E0D8 and a photo gallery permission of 0x000013AB
When did I ever say that all constants across all modules will all be placed in some central file? The situation called for a simple explanation of how bitwise operators could be used to pack multiple values into a single field.