I started to write an app that would do this for me. Once I worked out the math with the over head of moving money and BTC to cover the purchaes, It became apparent t was already being done. I saw that the margin over the cost to trade and move the money was far low and the gaps closed quickly. The current gaps are not due to the transaction fees, but do tot he middle man services that it takes to move the money from one exchange to another.
So it would require, at each exchange, a sum of $ and BTC. These sums could be quickly wiped out by a program doing arbitrage. So the overhead of keeping those sums high enough to continue the program and the time it takes to actually move money into the exchange (due to the middle-man) makes the margins very low? Due to missed gaps when your balances at each exchange become low.
It seems the only serious flaw is getting USD into an exchange in a timely manner. BTCs could be program to be transferred from one exchange to another, but not USD.
Damn interesting. I've wanted to do something like this for a while. Any other caveats we should be thinking about?