Thanks for the detailed question!
An R03 Return Code could happen when a Customer enters their Bank Account Number incorrectly. In this case, Dwolla will soft delete the bank account. Like you said above, you can retrieve the details of this bank account, but will be unable to initiate a transfer with it.
When will the bank funding source be removed?
The funding source will be removed after the transfer fails. In this case, a
customer_bank_transfer_failed event will be fired. This will trigger the
customer_funding_source_removed event wherein the bank funding source will be removed.
You can check out a list of events and their descriptions here
Why is the bank funding source removed?
The funding source is removed to keep transfers from being created using a bank account that isn’t valid. By removing a funding source, you will be unable to create a transfer using this bank funding source as either the
destination of a transfer.