So, I haven't had much winter weather yet, and being in North Alabama, USA, we don't get much - freezing temps come and go for about 3 months, maybe 3 days of snow (6" max). But we did have a month or so of temperatures so far this year that went into the mid to low 20s at night - I use 5 gal buckets with horizontal nipples set up on cinder blocks. I found that if I filled the bucket up all the way with water, and set the bucket in a sunny/breeze-free location, it didn't freeze all the nipples at night. The other waterer, which was placed in the windy, shady corner of the coop, consistently froze overnight on at least one size of the bucket, but the other nipples were mostly fine.
Basic heat transfer/thermodynamics - the more water in the bucket, and the higher the bucket temperature at the start of the night (freezing time), the longer the bucket would take to freeze. As long as the temperature got above freezing soon after sunrise the next day, the waterer was fine. My next step (if needed) is to use dark blue or dark red 5 gallon buckets (black would be optimal but I haven't seen those) to optimize solar heating (heat load) during the day, which would make the water in the bucket have as high of a temperature as possible at the start of night-time/freezing temperatures.
I send my son out to push on each of the water nipples to break the ice if possible each morning the temperature goes below freezing. It only works if there's a tiny amount of ice. If 4 of my 8 nipples aren't frozen, I call it a win. The rest thaw out within ~3 hrs of sunrise, depending on the outside temperature. My flock is 16 chickens at the moment.