Unity mentions in their manual that asset bundles are loaded in Unity WebGL memory heap. They also mention in their blog that dynamic memory size in the heap is not managed (compacted) so fragmentation can occur:
The image is from Unity official blog and shows the green blocks of fragmented heap memory.
So if we load an asset bundle of say 100mb in the heap and then unload it, that 100 mb will end up as a fragmented block i.e not added to the free memory blocks.
Now if we have N bundles of M size, each load and unload may create a fragmented block and this will cause Unity requiring more and more blocks from the free heap memory. Ultimately at one point, the free heap memory will finish and even though there is a lot of fragmented free space, Unity will not be able to use it and the application will crash.
Is my understanding of this correct?