> Not to mention the composition or what might be below the snow.
I don't feel like this is particularly harder than any of the other problems self-driving cars face. To achieve performance on par with human drivers simple need to do a couple of things (which are what I do when driving in snowy/icey conditions):
1) Categorize current/recent road appearance into groups.
2) Do tiny periodic break checks on each relevant group to determine the traction available in that group.
3) Trigger a new set break checks when conditions change (e.g. exterior temp changes, precipitation changes, traffic density changes or road-type changes such as exit ramp or bridge)
This road surface analysis combined with a bit of traffic analysis should also allow you to determine 'emergent lanes' in snowy conditions.