No, I strongly disagree. First the name must be OS dependent because you may want to add sl6_epel_testing on a sl6 machine, sl7_epel_testing on a sl7 machine... All OS-related repositories have always been prefixed by the OS version (or major version) and the only alternative would be to impove a subnamespace  based on OS version which may just make the things more complicated without adding any value.
As for variables, the template library is based on variables used to customize what is done by standard templates rather than calling directly the templates. This is a level of abstraction that after almost 10 years of development of the template library I consider one of the most important design point. This is the only way you make possible to evolve how you implement things without impacting the site configuration, one of the major goal of the template library.
What is important IMO is that we don't impose configuration of services/features/repositories that are in essence optional. This is what is achieved by defining a proper default value for the variable. In this case false. Which also means that as a site you can decide to achieve the same configuration in another way without conflict with the default config.