This visibility is certainly a pain, especially when you have a ton of site collections, a huge variable. Adding new things to the list of features for people to tinker with can be problematic, as it can cause more support than it costs.
If you really want things to not be exposed to others, you will most likely have to deploy these functions as hidden functions, and then activate them from the command line for the people who need them. I suppose you can also write your own Feature admin screen that will take into account the current web application.
source share