Are there any iPhone wallets that correctly return the change of a transaction into a newly generated address, much like Electrum does?
BitWallet does not do this.
The blockchain.info wallet does this however you must select the send from address to be 'any address' otherwise it will put the change in the address that you selected to send from.