Im programming a web that will use bitcoins and what I have done is that the out address does not change until 24hours after the change request has been made. So the user sets an out address, and if someone gets hold of his/her password and tries to change the address it wont work for 24 hours. We also send an email to the user if it has set up an email.
That's actually how BTCGuild works, and you're right, that would remove the need to limit BTC transactions.
Nice, makes it harder to 'hijack' an account and push coins willy-nilly to a bazillion addresses. That combined with transfer limits should do the trick. Optional two-factor notifications would be nice, much like credit card companies do - sending an alert if your balance falls from 'x' amount.
Though on the downside, that will kill MtGox's service as a means of paying people in the go with their phone app.