Deleting a transaction from your wallet does not remove it from the rest of the network. If it is still floating around out there, your node will get it back from the network and put it back in your wallet.
For best results, you need to unplug your network cable before starting bitcoin after deleting the transaction. Then you can create a new transaction. Be absolutely sure that the new transaction uses at least one input used by the old transaction, or you'll end up paying double.
I'm guessing this is what happened... though I would have expected, if the txn was rediscovered from a peer, for it to show up in gettransaction/getrawtransaction probes, especially after doing the long txindex rebuild... but it did not. (I received an `error: {"code":-5,"message":"Invalid or non-wallet transaction id"}` for gettransaction.)
If I have to try this again, I'll keep the node off the network before testing... but that raises the question: is there a good way to do that, using just bitcoind/bitcoin-qt options? (Total network 'unplug' isn't possible for this particular wallet which i can only reach via the network.) It looks like a maxconnections of 0 will be ignored. Maybe a single 'connect' option to a known-bad address, with no addnodes, will leave a client started but unconnected?
1. Your wallet isn't corrupted.
2. Did you try deleting all the tx's?
3. Did you check on blockchain.info if your tx is shown?
4. Can you post the recipient address?
I didn't get around to trying a delete-all-txns. I'd pushed the unconfirmed transactions myself to blockchain.info -- so yes in fact they all appeared there. But after using pywallet to remove them locally, they would not return from my client via 'gettransaction', even though they were still effectively consuming earlier outputs.
I was able to craft a replacement double-spend transaction, via the bitcoind raw txns api, to compete with the 1st unconfirmed transaction. After issuing that, with a larger transaction fee, it was fairly quickly mined into a block, making the other 6+ txns orphans. My replacement transaction evacuated the affected wallet entirely... so I believe my problem is resolved, with all funds again spendable rather than stuck as unconfirmed change.
I'm guessing kjj's theory above, rediscovery of the key transaction from peers, was the main factor in the spendable outputs/balances remaining the same even after local transaction deletion.
Thanks for the rapid replies and suggestions!