The genericity of SCM is built upon the simplicity of its model, and the universality with which this one applies to virtually anything.
The model considers whatever entity of concern as a software configuration, i.e. a graph of configuration items related with (directed) dependencies.
Any configuration item may itself be considered as a software configuration (possibly trivial when degenerated to the level of an opaque element version).
The genericity of dependencies is obtained through producing them by auditing an event, and recording enough information to make this one uniquely identifiable. Note that the record typically involves a tool interpreting in a specific way properties of the configuration items. Nevertheless, the dependency is fully generic, so that its management doesn't require any knowledge of the tool.
Generic manageability is obtained for the parts of the dependency graph which are acyclic, i.e. allow for a decomposition into layers (levelization), and thus an serialization of concerns.