I guess it depends how much minimizing the size of your connection pool matters.
One of these options makes things simpler. I'm always in favor of that.
EDIT: Also, this seems like a classic load balancing problem: Simply picking the least loaded connection would have been sufficient. The response time on each connection could be computed either explicitly (a running average/standard deviation of RPC finish times) or implicitly by checking the queue backlog at any time (the queue backlong being a first-order statistic).
Without a bit more information I think I am just speculating and don't really know. Their solution doesn't really taste bad to me though.
Within their solution just had to convert the LIFO stack into an FIFO queue, keeping it simple.
Not just connections which traverse aggregated links. If you're load-balancing between multiple database replicas -- or between several S3 endpoints -- this sort of MRU connection pool will cause metastable load imbalances on the targets.
What I don't understand is why Facebook didn't simply fix their MRU pool: Switching from "most recent response received" to "most recent request sent" (out of the links which don't have a request already in progress, of course) would have flipped the effect from preferring overloaded links to avoiding them.