soとveryの「ニュアンスの違い」についてのご質問なのですが、「意味」の前に「使い方」を押さえるのが、言語における原則です。そもそも使い方から違うケースでは、意味を比較しても仕方がないからです。
veryの使い方についてはあまり解説は要らないかと思いますが、副詞として形容詞を修飾します。
It was very cold today.(今日はとても寒かったです)
soを使った場合にも
It was so cold today.
のような言い方もできますが、実は本来の使い方ではありません。soについて、根本から解説しますね。
soというのは基本的に「後につなげる」機能を持っている言葉です。例えば、前に言った発言を受けて、
... So, I have decided to quit.(それで……やめる決心をしました)
とか、相手の発言を受けて
So what?(だから何なの?)
のように言ったりします。
学生時代に「so ~ that構文」というのを習った記憶のある人もいるでしょう。それがsoの正式な使い方です。
It was so cold today that I didn't want to go outside.
(今日は寒すぎたので、外出したくなかった)
「so cold today...」と言うことで、そこから「I didn't want to go outside(外出したくない)」という発言につなげているのです。
ですから本来は、
It was so cold today...
で終わってしまうと言葉足らずな感じがあるのです。英作文などの書き言葉だと先生が×をつけます。
そこまでが前提です。
でも、言葉は生き物ですから時代で変化します。会話においては、soという単語はsoooooooのように気持ちを乗せて強調して言うのに適しています。
It was sooooooo cold today...
のように、soに気持ちを込めた上で、皆まで言わずに含みを残すような使われ方がするようになりました。非常に感情的な使い方ですので、少し前は、このような使い方は「女性的」だと言われたりもしました。
そこからさらに、この用法が一般的になってきたため、ご質問のようにveryとsoを同じような使い方で、使い分けるように変わってきたのです。
厳密なことは言えませんが、あくまでも対比という意味で捉えると、この2つを比較した場合には、
very はどちらかというと冷静で客観的、so は感情的で主観的だと言うことができるのではないでしょうか。
また、最近は「共感」が大切な時代になってきています。他の方が書いていらっしゃいますが、Hapa英会話のJunさんがおっしゃっている
・soは相手も知っている内容について
・veryは、相手が知らない情報について
という傾向についても、「そうだよね」と共感してもらいたいからsoを使うのではないかと僕は解釈しています。