Two of the best things you can do to reduce lag are to go vertical, and to make use of traffic zones and doors to game the pathfinding algorithm.
A vertical layout that works very well for me at reducing lag is a 15-tile diameter cylinder with a "plus"-shaped 5-tile stairway in the center. Place workshops one tile back from the stairway, and put their input stockpiles (raw materials that the workshop will take in) adjacent to the stairway; put a two-tile-wide output pile around the other three sides of each workshop. Then I designate the stairway and a short straight-line path to the center of each workshop on each floor as "high traffic", and designate a 1-tile border around that region as "low traffic" and a 1-tile border around that region as "restricted". Move up or down a floor and repeat, stacking these 15-tile circles on top of each other and skipping one floor every 4 or 5 floors for future use. Put workshops with similar functions together on the same floor to minimize hauling distances. If you don't think this is more efficient, try to calculate the total hauling distance required to create, say, a dyed cloth bag... and then add up how many of those hauling jobs are performed by skilled dwarves vs. unskilled haulers (a skilled dwarf has to haul the item from the input stockpile to his workshop for each skilled task). Reducing total path distance reduces the number of iterations of the pathfinding algorithm that each dwarf has to go through.
As for gaming the algorithm, I've already described my traffic zone layout. In addition to aggressive zoning, anywhere you decide to dig long horizontal paths, start with a one-tile doorway and place a long restricted zone in the tunnel. Your miners will still path to the exploratory mining jobs, and your haulers will still go there to recover gems, but most pathing checks will ignore it. If you're not actively working the branch, forbid the door and the pathing algorithm will ignore that entire region.