No. Once you spend your coins from the imported address, the change will be returned to a new address stored in your wallet. If you delete it then, you will lose everything.
What you have to do after the import, is to send the entire remaining amount back to your chosen address in a new transaction.
.
The answer to Indio007's question is "yes in theory", but with the current client, the answer "no" is correct to the extent that the change is likely to go to a newly generated address.
I'd be willing to bet that "pywallet" either does, or could be trivially modified, to fill the unused keypool within wallet.dat with hundreds or thousands of pre-generated addresses that can be derived from the passphrase so the bitcoin client didn't have to.
One passphrase can seed thousands or millions or any number of bitcoin addresses, all of which can be recovered with the same passphrase. If passphrase is "my passphrase", then the first address is based on "my passphrase1" and the second on "my passphrase2", and the millionth on "my passphrase1000000". IIRC, bitcoind only adds keys to the key pool if the number of keys in the pool falls below 100. If you used a deterministic wallet generator to generate a wallet.dat with 10,000 addresses - most of them going into the key pool - you would probably never need to worry about the change going to a new address.