I've updated this question to reflect my current understanding after reading the answer given by Michael. The main doubt is why the proposed "filter first, then collect" approach fails and ...