Our environment requires possibility to remove all documents from collection without reseting indexing and sharding settings.
This is because we use staggered collections to manage throw away data which is inserted at thousands of documents per second.
Using normal remove is very slow when you have millions of documents (we were clocking about 50k documents per second on collection with 150M documents) and you are getting inserts to the collection at the same time.
Drop is fast but requires setting up sharding , shardkeys and indexing everytime collection is dropped. removeAll() would be same as drop but would retain indexes and other metadata.