You can just go for it and make a production chain for a product, but if next one needs same intermediates you'd be re-doing it. i.e. doing a spaghetti code.
You can section off the each intermediate into separate factory and just chain them to eachother and have relatively nice order, but when you try to expand production of everything, there is no easy way to grow that complex, so the best you can do is just copy the same block around.
Lastly you can build a rail network and put each intermediate anywhere you want without much problems, but wiring everything up will take a lot more effort, you will have to go to various places to debug any problem, any problems are less visible at first glance and lastly if you don't plan for capacity you might have bandwidth and latency problems