There are differences in opinion in how crates.io should be moderated, but I feel this is doing a disservice to both the crates.io team and to the majority of the community, who I believe understand that running a service like crates.io has challenges and that the team is doing a great job, given the circumstances. I don’t speak for the community, as your post suggests you do, but I think this is a common sentiment.
I may be misunderstanding some detail here, but if crates.io refuses to host a crate, because for example it violates the ToS, why would it alias and cache it for a custom registry. I don’t understand how this proposal distances you from crates.io any more than for example, hosting your own git instance (this gets you away from GitHub too :P) and getting your users to use path = {...}.
I also don’t understand how it gets around names being unavailable. If potato is published on crates.io and I want to make my own potato, can I? How do I specify to use mine in my Cargo.toml? If someone else just adds potato = "*" to theirs, what happens? I feel like all of these would need to be detailed in the RFC for this to make progress. Your other comments suggest you envisage this being implemented along with a namespacing scheme - is this proposal still possible if those RFCs don’t get passed?