Let me supplement this post with some explanations from the programming side point of view.
The chests in this game accept multiple types of items, and with different amount and/or health/ammo in each slot. Therefore, whenever items are inserted to a chest, slots are scanned from the first slot. When item type/health match, then it will try to insert to this slot. If there are remaining items in the input stack, it will scan the next slot. The process will repeat until nothing remains or up to the last slot. For the worst-case scenario, it will scan to the last slot. For vanilla steel chest, it's only 48 slots so quick enough. If you are using some warehouse with 10000 slots, that means in theory 200 times in scanning is needed! To make the situation even worse, very often multiple inserters/loaders are used on the same chest/warehouse. The scans have to go independent for each inserter/loader. If you have 10 inserters on the same chest/warehouse, it needs 100000 slot handling per update in the worst case.
Taking items from a chest is similar, except the scan starts from the last slot. If no information of empty slots is known (consuming memory to do that), then it ends up have to start scanning from the 10000th slot even though the warehouse can be quite empty.
That's why in some warehouse mod (forgot which one), the author already forewarned that his/her warehouses are NOT UPS-friendly. The statement is true for not only his/her warehouses, but also ALL chests/containers with high number of slots.
So while warehouse may seems convenient to many players, it is a poor choice for megabase builders.
And that's why I love this mod! I can use 1×N line chests for train stations and belt balancing, while avoiding UPS hit to my game!