I love the idea of minecarts. I love building tracks and seeing the little dorfs push the things around. I love watching the inevitable minecart related accidents.
But they don't seem to enhance hauling in the current version, unless you use tricks to "game" the system.
Take, for example, the situation where you've mined out a whole load of metal ore all on one level. If you set up multiple stockpiles, the dorfs won't do the smart thing, which would be to haul ore to the _nearest_ stockpile.
Instead, I've seen dorfs haul from the top left most square to the _furthest possible_ stockpile, totally ingoring the stockpile right next to them.
So the best way I have found is to set up multiple 1x1 dump zones near the ore, then designate all the ore to be dumped. Dorfs will reliably use the closest dump, it seems. Then make 1x1 stockpiles over all the dump zones, set to take only from links (and keep them unlinked so nobody ever brings ore there).
Then connect the dumps/stockpiles via a minecart track, define a route, build track stops, assign minecart, etc. Then re-claim the ore so it gets loaded onto the minecarts and sent on its way.
This is a lot of work, and involves quantum stockpiles/dumps, which doesn't really sit well with me.
But there doesn't seem to be a way of using minecarts to actually make hauling more sensible, unless I'm missing something.
Perhaps ore should simply be too heavy to lift long distances, and dorfs should refuse to do it? So you would be forced to run tracks to within 5 squares of your ore, for example. I don't know. But it does seem like the present minecart system, whilst very cool, doesn't help much in terms of tranpsortation.