The main reason for avoiding multi-tenancy over collections is the collections have a built in limit. If you decide later in the life of the application, that a new data structure and new collections are needed, if you are anywhere near close to the limit, you are out of luck with adding that new feature/ data. The only choice you'd have is to start up another database instance and expand on that, which would make your application that more complicated and open to problems. It is possible to do though.
Another point to make is this. You gain nothing by spreading data over the collections. In fact, you are fighting the whole goal of sharding, since sharding is at the collection level. In other words, everything that is built to make MongoDB perform well, you are sidestepping, by trying to make your system perform better over "smaller", but many, collections. That isn't what MongoDB was built to do.
That is as best I can put it in my, granted, limited knowledge.
Your suggestion is the second choice mentioned. Shared Database, Separate Schemas. Whereas, you are suggesting the schemas will actually be the same, which means, taking this direction makes even less sense, because why separate, when the structure or schema is the same? You'll notice too, this direction is least talked about in the post, simply because it is the least effective.
My project is also taking a multi-tenant approach, but because our tenants will have such a diversity in data and opportunities to create their own models of the data, and for us to still keep things as simple and efficient as possible, we are going to a database per customer approach. At first, we were also were planning to have "smaller" customers on a shared database (your suggested route), because of the storage allocation scheme MongoDB has, but the new WiredTiger storage engine doesn't preallocate large data files and thus, we can offer this storage system to even small customers.
Obviously, the number of databases per server instance is also a limit, but the fact that MongoDB, as a database service, can be automated completely, we don't see this as too big an issue. Firing up and maintaining new database instances shouldn't be a limiting factor. If anything, finding a provider to handle the business would be. And, we'd love to be so big, that that does become even the slightest of issues.:)
We are also going the database per customer/ tenant route, because we want our customers to be as autonomous as possible, should their usage of the system be very successful. We can wean/ morph/ spawn them onto their own database cluster, at some point in time, if need be and offer them even better service.
At any rate. I hope that helps a little more/ better.
Scott