I'm just building small sub-factories for special purposes, eg one row of assemblers to make green circuits, and another to make red circuits. it is easy to set them up with separate requesters (as Andrew has said), but with their size of 3x3 tiles (and i understand and see the advantages of square footprints) this looks quite complicated and space consuming at first. they require 4x3 or 5x3 tiles along my "main road", or a small additional "side road" that can service those 4 or 5 depots. a truck/drone based transport system just can't be as small and specific and universal at the same time, as eg bots with their overpowered 1x1 chests :-)
in the end, it's no big problem and only a small additional challenge to find a solution once and use that template for many similar sub-factories. i just finished two versions, one of them being the following :
3 tiles for a row of beacons, 3 for first row of assemblers, 1 tile for inserters, 3 tiles for (optionally weaved) belts (2 to 8 resource lanes "in" and 1 to 4 product lanes "out"), another tile of inserters and another 3 tiles for a second row of assemblers (3 more tiles for beacons already belong to the next block). total of 14 tiles width, leaving exactly 1 tile for supplying the beacons with power, followed by the next 15 wide tileable (beacons overlapping) building block, that can be extended (made longer) while belts can support throughput (yes, i use belts, but only inside each block, not to connect blocks with each other) ...
if you can't imagine this yourself, the following are two such blocks, one for red+green and one for grey science, total width of 2x15(+3) tiles, fitting in 0.5x2 chunks per block. currently still unbeaconed and only with assembler2 and yellow belts, but should already be good enough for 90 spm, speedbeaconed and with assembler3 probably 750+ spm :-) what more could you want ? :-) LOL
https://kirkmcdonald.github.io/calc.html#zip=dY5BDoMwDAR/kxORQltBBcpjrOAiq3GMiDnwezj10CSStRfvjmYBBe9sP9rBGabkX4YUOXs4VBiUJNkcCFNAu0H4Tp+pd12UlbJSKF6PjimSwn6WK0Nrkh1b5Dq0zjMsyxGxbZmfv5vvfDeMi1rd/r92AQ==