Como o próprio instrutor reconhece o construtor retornar um objeto de outra classe é de "arder as vistas" não seria mais elegante usar um método estático na classe bind que retorna o Proxy ?
class Bind {
static getProxy(model, view, props) {
let proxy = ProxyFactory.create(model, props, model => {
view.update(model)
});
view.update(model);
return proxy;
}
}