Acho que entendi melhor agora… Vamos validar primeiro:
Uma interface é um contrato, quando se implementa uma interface se garante que o contrato foi estabelecido. Hoje em dia o contrato é composto apenas por métodos, a idéia é que a forma com que o objeto daquela classe é instanciado siga o contrato. O ponto de vocês é que como um proxy já foi instancaido por algum meio arcano não há como alguém chamar o construtor novamente, logo não haveria quebra de contrato.
Bom, há sim. Não sei se o sacrifício vale a pena , mas que há há 
Imagine que eu tenha a seguinte situação:
interface A{
A(String arg);
}
E imagine que eu tenha um proxy vindo de alguma fonte obscura (CGLIB, DynamicProxy…os suspeitos usuais):
{
A mamaeSouUmProxy = criaUmProxyQualquer(A.class, invokationHandlerXyz);
}
O seguinte trecho não é válido:
Class classeQueDeveriaConterOConstrutor = mamaeSouUmProxy.getClass();
Constructor oConstrutorQueNaoVaiExistirNesteCaso = classeQueDeveriaConterOConstrutor.getConstructor(new Class[]{String.class});
//CABOOOM
A umaInstanciaDamesmaClasse = oConstrutorQueNaoVaiExistirNesteCaso.invoke(new Object[]{"aiaiai"});
Correto?
Como falei não sei se os fins compensam os meios (ou se papei mosca em alguma coisa), mas eu sou geralmente a favor de uma linguagem coesa. Se não Java vira C# com suas 82 keywords e dezenas de exceções à regra.