I suspect that a cached GetResources call will be a problem unless there’s a way to uniquely identify the call like the way Ditto had it. I haven’t explored all of GetResources yet so I’m not sure if there is or isn’t an ID identifier

.
But yes, if there’s just a way to sort out information within a single GetResource call, that would be the most optimized solution, though I think there’s an inherent issue with the counting mechanism given such a scenario:
In one page, we’ve got the following stories:
5x "1x1" blocks
2x "2x1" blocks
1x "3x1" block
On each page of a getResource call, it has to take into account the pagination of the three types of blocks. Well, so long as the page template has a fixed count of each, the pagination is predictable and shouldn’t be a problem.
One of the reasons I subdivided my blocks into horizontal groups is the possibility of dynamically randomizing the vertical position of the groups and switching positions of the blocks so the page doesn’t look boring.
A 3x or single GetResources call sure beats 6 or more