Yes, just make UI use Templates for repo creation. In short, changes I was proposing long time ago:

1) expose existing templates over REST
2) Repo creation UI should offer them... so, instead as today (select provider "maven2" and repository policy "Released", plus implicitly selected kind when you pressed Add Hosted / Proxy / ...., just make UI show the list of existing (filtered) templates.
3) a bit more work needed on templates

So, if we want to stick with Add Hosted / Proxy ... buttons, we could filter templates for HostedRepository, ProxyRepository etc, and then instead of setting "maven2" and "Release" (from corresponding drop downs), user would choose "Maven2 (hosted, release)" entry (which maps to org.sonatype.nexus.templates.repository.maven.Maven2HostedRepositoryTemplate.Maven2HostedRepositoryTemplate) and UI would just send back the used template ID.

Still, even if this would not require rewriting half of nexus, templates (org.sonatype.nexus.templates.repository package) and this resource would need some love, as then there still the need to "apply" the values to the configuration sent by UI to the template before template.create() is invoked (which actually creates live repo instance, and does everything needed (adds it to config, saves config etc).