Yes. In an area covered by snow, it will only snow. Weather is controlled by the type of biome it is affecting. It doesn't rain in Tundra, Taiga and Desert biomes.
At the moment, there are two types of weather: Rain and snow. Thunderstorms can occur in both types, and these can be dangerous: striking things with lightning (including you!), creating fires (as a result of the lighting strikes) and etctera. The occurrence of weather lasts for 15 minutes, if you don't want to go through it, you can sleep in a bed to skip that time entirely.
As a proof that different biomes have different types of weather at the same time, see the following image: (courtesy of the Minecraft Wiki)
More information about weather: http://www.minecraftwiki.net/wiki/Weather
Since the world of Minecraft is infinite, (see Notch's blog post about that interesting subject,) all worlds should have all biomes, if you search far enough for them. It is possible that some seeds randomly generate very large biomes, but this is only due to the random nature of terrain generation.
For versions starting with 1.7 snapshots
From Jeb's blog post:
Biomes have been put into four main categories: snow-covered, cold, medium, and dry/warm. Biomes will avoid getting placed next to a biome that is too different to itself (sometimes this still happens, but it’s very rare now and not all over the place)
[...] Most biomes have uncommon/rare variations that you may run into.
For versions starting with Beta 1.8
In Beta 1.8, biomes got an overhaul. They are no longer determined by randomized metrics such as rainfall and temperature. Rather, they appear to be assigned randomly to fractal sections of the world, as determined by the world's seed.
This was done to better allow new biomes to be inserted. Rather than changing the entire temperature/rainfall simulation, new biomes can simply be generated when new chunks are explored. This is also why biome information is now stored in the anvil file format itself, rather than regenerated every time the game is run. In this way, even if generation code changes occur, currently-explored biomes should not change.
Lastly, new "technical" biomes were introduced to support transitioning from one specific biome to another.
For versions prior to Beta 1.8
Biomes are defined using different aspects of environment such as a rainfall and temperature, which presumably are defined in a similar manner to height (ie. a Perlin Noise map overlaying the world.) These are used to determine the biome for that area, with deserts being hot and dry, rainforests being hot and wet, etc. The Minecraft Wiki has some great illustrations of biomes, with one of the most informative being this one:
Assuming rainfall and temperature are evenly distributed, the distribution of each biome should be relative to their size in the graphic above. (This may not be a true assumption, though, and would take some digging into the source code to tell.)
To answer your final question, "North" and "South" are abstract and irrelevant, due to the infinite nature of Minecraft. Minecraft worlds do not simulate a planet, but a massive, flat world.
For those of you interested in a more procedural biome-generation method, check out dungeonleague.com, and this post and few preceding posts in particular.
Best Answer
Looks like it might be a gradual change from not freezing at 122 to freezing pretty quickly at 127 or so. In the image, the large pool on the right is at 123, then they step upwards to the left up to 127 at the far left. At the lower right, the pools are at 122, 121, and 120. They have no ice, and the ones I made most recently, the highest ones, froze over the most quickly.
Just realized your question was mostly about snowfall; this will occur at the same height that water freezes at.
Edit: After over an hour, this is how much has frozen. I recommend building ice trays and the like starting at block 130 or so, just to make sure you get quick and complete freezing.