I like this idea, but if you want to do it like that, Toady will need to make a system to decide where those items are going to be hauled. One obvious possibility is to haul things to the tile where they will be built. This wouldn't work for floors, but for walls, stairs, bridges and mechanical things it would be fairly effective.
Hauling for things you'll build in the air is a bit more difficult, but still feasible. For floors which are going to be built in places where you can't put anything, you'd need some algorithm to decide where to put stones. I think the best bet would be to automatically create an invisible stockpile which is the same size as the floor you're making + 5 tiles in each direction, and make the stockpile on the same Z-level as the floor, as well as at Z-level +1, and Z-level -1. The upper stockpile should only be made if there is a set of stairs or a ramp to go up within the stockpile area of the Z-level that the floor was built on. Likewise, the lower stockpile should be made only if there are stairs or ramps to get to the lower level within the area of the stockpile in the middle floor. Set the stockpiles to accept the building materials for any construction in their areas, as well as for their related stockpiles. Anything that would require objects to be moved out of the way, e.g. a wall designated for construction, would cancel that space for the stockpile.
For example, if you build a set of stairs on open ground, a stockpile would be created on the ground for the construction materials for those stairs. Once the stairs are built, if you wanted to build some floors on the next z-level up, and connect them to the stairs, a stockpile would be created on the ground below the floor, and on the stairs at the next level. As the floor gets built, the stockpile would expand to make use of the newly available space. If you also decided to build some walls on the ground level while you make the floors above, then the stockpile would expand to encompass the additional construction. As the construction is finished, it would correspondingly make the stockpile smaller and smaller.
When all of the materials have been moved to the construction site, or all of the structures have finally been built, the stockpiles would be deleted.
I'm sure there are some problems with this though. What should be done if the masons want to start building but the haulers have moved their construction materials? What if two different construction areas have overlapping stockpiles?
Edit: One other thing we'd need to watch out for is that the stockpile should be a contiguous area. You might be building on top of a wall, and you'd want the stockpile on the ground to be on one side (the safe side!) of the wall, and not the other. If the stockpile simply goes everywhere around the construction site, you'll have workers carrying your building materials to the wrong side of the wall, outside of your fortress, thus forcing your masons to walk out of the fortress, around your wall and back again to get the building materials. If the area is not contiguous, the stockpile should avoid using any squares that cannot be reached by staying inside the stockpile rectangle and walking from the things you're building.
This might use up a bit of CPU power, but, since the game pauses when you're doing construction anyway, I don't think it matters.