The scm sync configuration plugin is deprecated. No further work is expected on the plugin.
Users of this plugin are encouraged to migrate their jobs to Pipeline Plugin, so that their jobs will be specified in pipeline code that can be checked into an SCM, all without using the SCM Sync configuration plugin.
Users of this plugin are also encouraged to use the Configuration as Code Plugin to specify the configuration of their Jenkins server in a file which can be checked into an SCM, all without using the SCM Sync configuration plugin.
I don't think separate implementation for each SCM is necessary.
Providing a new relative path at scm-sync-configuration config section (which then could be used in ScmSyncConfigBusiness. getCheckoutScmDirectoryAbsolutePath()) would be sufficient.