すみません、もう少し捕捉します。
common.dllという名前にしていますが、DynamicJsonのようなオープンソースのDLLをイメージしています。
やりたいことは、それぞれのアセンブリが別々のバージョンのcommon.dllを利用できるようにする、です。
理由はすでに出ていますが、想定していないバージョンのcommon.dllを参照して副作用が起きるのを防ぐためです。

サイドバイサイドで検索してみました。
あまり情報を拾えませんでしたが、それぞれのアセンブリでmanifestファイルを用意し、バージョン指定すればOKということでしょうか?
もうすこし調べてみます。