Why does the Winter Solstice occur on December 21st, and not Dec 31st or Jan 1st?
I hope someone else can answer this better than me, but I'll take a kick at it. TL; DR: because of the weight of tradition.
The calendar that we use today is mostly based on the one used by the Romans. I don't know where the Romans got it from. Other calendars developed by non-western cultures may well mark the turn of the year at an Equinox or solstice, but those aren't in my area of study. Some Roman holy days fell on or near solstices, the winter one is called Saturnalia, but as far as I am aware the Roman religion did not mark the solstices and equinoxes the same way that (we seem to think) the Celtic and Germanic religions did. Once Christianity got into the mix, the turn of the year was celebrated on March 25 or something like that, which is sort of close to the spring equinox, the only one of the four solstice/equinoxes that has any relationship to the Christian calendar (Easter is on the first Sunday after the first full moon following the spring equinox or something like that, and a good deal of medieval mathematics and astronomy was devoted to calculating proper dates for Easter). As you probably know, the calendar that the medieval west inherited from the Romans slowly slid further and further out of synchronization with the observed astronomical year, until a sixteenth century Pope instituted reforms, with many Protestant countries not following suit until the eighteenth century. The only serious attempt I'm aware of ever having been made to reform the western calendar along more "rational" lines was the calendar used by the French Republic after the revolution, which divided the year into a sort of decimal system as best it could. Today, from a scientific type of perspective, it might seem more "logical" to tie the turn of the year to an observable astronomical phenomenon (and pagans and wiccans of various flavors would love it too), but I don't know if it's ever been proposed.