You could just ssh tunnel the docker host tcp port right? And then push straight at it, intermediate registry is to reduce privileges?
You should be able to "docker build" the image on the remote host that way. Downside there is that you are transporting the entire build context rather than just the layers. IMO most cases will be less efficient.