This has, of course, been discussed before, but another go around can't hurt too bad.
It depends on your definition of waterproof. I think water-resistant is a good term for e-bikes and something we should strive for. Waterproofness is not necessary as none of us would actually submerge a bike.
Let's think about the components that really need to be protected from water ingress (in no particular order): Motor, controller, wiring, display unit, throttles, batts.
Motors, in particular, have been discussed ad naseum, and the general consensus is that you cannot fully prevent water ingress, as even the wires will allow water to wick into an otherwise sealed motor. The best would be to allow the water to escape through means of a vent as the motor heats through its normal cycles.
Of course, water can have an immediately effect on the functionality of a controller. Potting has been discussed, but shot down due to the hindrance to cooling. Best to mount the controller such that water cannot pool on the ends and seep in to the plates. I used sugru on a particular bike in which the controller was mounted upside down and slanted, to make the water run off the back. It has done the job well for the last year.
For wiring, using a dielectric grease on the backs of connectors with heat shrink over that does wonders at a cheap price.
Last and definitely not least, due to the safety aspects of water ingress are throttles. A water logged throttle can cause some serious problems, I'm sure you can imagine. For those, dielectric grease or even hot glue on the wire ends can help prevent dangerous throttle shorts.
Oh yea... and keep those batteries dry too.
