I beleive it was designed this way because Meteor was designed to work with an optimistic UI out of the box.
Optimistic UI needs db queries to be done in order because the client updates immediately, before the server has started/finished processing a request.
You can imagine a situation where you create an object and then start editing updating it right away with optimistic UI. Now without a method queue if the create action takes much longer for some reason, it’s possible that the update will get processed first and fail because it depends on the result of the first request. With a queue, it guarantees that the server processes action in the same order in which the client performed them, eliminating a whole class of state / timing bugs.
Optimisitic UI also means that the extra wait for processing requests in a queue has less impact on the user, as they can continue working with the simulated results while the server is catching up
It does make me wonder why they made async functions unblock by default