I really like how snow accumulates on tree leaves, but I hate how it doesn't beneath them, because it makes snowy terrain look really splotchy. My suggestion is to make snow view leaves in a special way.
Let the snow accumulate on the leaf block, but have it "search" down through every vertically adjacent leaf block. If it finds a solid block under these leaves with no gap between the block and the leaves, it stops searching.
If, however, it finds an open-air block below the leaves, it will snow from that point downward as well. When the snow finds another block, it will randomly build a snow space there as well (and if it is another leaf block, it will begin searching down again as well.)
Obviously, the snow cannot stop at a snowy space; its vertical search routine should only end when it finds a solid, but non-leaf block.
Perhaps the chance for snow to appear under leaves should decrease for the amount of leaf blocks it has to pass through. For example, if snow only has to pass through 1 leaf block before reaching the ground it is more likely to appear than snow that must pass through 2 or more. This means snow is less likely to appear closer to the trunk because of the denser leaves.
Let the snow accumulate on the leaf block, but have it "search" down through every vertically adjacent leaf block. If it finds a solid block under these leaves with no gap between the block and the leaves, it stops searching.
If, however, it finds an open-air block below the leaves, it will snow from that point downward as well. When the snow finds another block, it will randomly build a snow space there as well (and if it is another leaf block, it will begin searching down again as well.)
Obviously, the snow cannot stop at a snowy space; its vertical search routine should only end when it finds a solid, but non-leaf block.
With improved snow: