I've been using Rejex for five or six years now, and I've always used it on all the glass except the windshield. It works great on the Smart's pano roof, where the water just beads up and blows off at any speed more than about 15 MPH. I'll also use it on rims, including the barrel, which helps keep it much cleaner as well. The stuff is shiny and lasts a long time.
As often as it needs it. In 2009, before a 2-year road trip, I RejeX'd my new car (clay bar; two coats of RejeX). During those two years, the car covered 16K miles throughout the western United States without EVER being washed. Or garaged. It was subjected to brutal temperature extremes, ranging from below-0°F to 120°F, in snow, relentless Pacific Northwest rain, wind, hail, and Southwest baking desert summer sun and sandstorms. At the end of those two years, I washed the car. Although water could no longer quite bead up, the washing process proved to be no more difficult than if I'd been keeping up with it weekly. No bugs or bird dung stuck, and the result was as good as brand new. In short, for a full two years, RejeX did its protective job... and then some.
You want to invest the time to get the paint in good shape before using Rejex. On my new car, I put it on basically from the start and now six years later the paint still is in great shape, and no swirls can be seen even in direct light.
My experience is that it lasts about six months on paint and windows with good beading, but still protects from environmental damage for longer than that. On wheels, it seems to lose the hard finish in about half that time.
I don't apply two coats. I tried that once and it didn't make much difference in how long it lasted for me. But what does make a difference is to put it on and let it sit for a couple of days before wiping it off. It seems to last at least 50% longer doing it that way.