Zuishin さんの回答とダブるところがありますが・・・
質問に書いてある A が ASP.NET MVC などの Web アプリのプロジェクト、B は A が使う自作クラスライブラリのプロジェクトと理解してレスします。
AのWebサイトで呼び出していないdllなのであれば、B.dll以外のdllは不要ではないのかと思うのですが、いかがでしょうか。
A が直接呼び出さなくても、A が B を呼び出すと、B がその .dll を呼び出すのではないですか? そうであれば、A のプロジェクトの bin フォルダに B のプロジェクトの bin フォルダの .dll が配置されていないと Web アプリは動かないということになるはずです。
例えば、Class1.cs というクラスライブラリをプロジェクトとして追加し、それを Web アプリのプロジェクト側から「プロジェクト参照」したとします。そして、クラスライブラリに Newtonsoft.Json を NuGet で追加したとします。以下の画像を見てください。
上の画像の通り Newtonsoft.Json 参照プロパティの「ローカルにコピー」が Ture となっているのでクラスライブラリの bin フォルダには Newtonsoft.Json.dll が配置されます。
Web アプリのプロジェクトを実行すると、以下の画像の依存関係に従って、クラスライブラリプロジェクトがビルドされ、クラスライブラリの bin フォルダから Web アプリの bin フォルダに必要な .dll(ClassLibrary1.dll と Newtonsoft.Json.dll)がコピーされ、その後 Web アプリがビルドされるはずです。
クラスライブラリプロジェクトの参照設定で「ローカルにコピー」が False となっていれば bin フォルダにはコピーされてないはずです。確認してみてください。
また、上記のような状況が気持ち悪かったため、「プロジェクト参照」ではなく、「dll参照」を行ったところ、AのWebサイトのビルドを行った時に、B.dllが最新化されませんでした。
それは NG です。上に書いたように依存関係がありますので、それを維持するには「プロジェクト参照」が必要です。
ASP.NET の bin フォルダには以下の記事に書いてあるような特別な意味もあります。一読してみることをお勧めします。
Shared Code Folders in ASP.NET Web Sites
https://docs.microsoft.com/en-us/previous-versions/aspnet/t990ks23(v=vs.100)
bin フォルダについては以下の記述に注目です。
"You can store compiled assemblies in the Bin folder, and other code anywhere in the Web application (such as code for pages) automatically references it. A typical example is that you have the compiled code for a custom class. You can copy the compiled assembly to the Bin folder of your Web application and the class is then available to all pages."