Yes, I have implemented and run your test case. We actually have the same test case in <bdb_repo>/test/csharp/QueueDatabaseTest.TestPutMultiple().
May I know why or which tool indicates that the memory allocated in MutlipleDatabaseEntry never gets freed?
As I see, the data buffer allocated in MultipleDatabaseEntry will be freed as long as the MultipleDatabaseEntry is recycled or you clear the data buffer by setting the MultipleDatabaseEntry.Data to null. You could refer to our source code in <bdb_repo>/lang/csharp/src/MultipleDatatbaseEntry.cs: 176. The memory allocated as shown in the CLR profiler is from this line of code. It is System.Collections.Array. So there is no need to free it explicitly and its memory will be collected automatically as long as it is no longer referenced.
Yes, I have run the same test program and there is no memory leak reported.
I am using BDB 5.3.21 - the same version as yours.
Here is the download page.