If the client isn't explicitly closed, it appears the lease renewer holds a reference to it so the client will never be closed until exit.
If there is nothing left to renew (i.e. all DFSOutputStreams are closed), the renewer thread will terminate after a delay. So, if user close all output streams, the renewer won't be the one holding the reference. DFSClient staying open likely means DistributedFileSystem isn't closed and has a reference to the client.
Will this cause the client's leases to be renewed until exit? The renewer will shutdown if all clients are closed, but due to the aforementioned, this will never happen. Will this cause the process or a new thread to encounter lease problems when re-opening the file?
The newer will shutdown if all DFSOutputStreams are closed, not necessarily DFSClients. Even if the renewer is active due to one forgotten stream, it won't affect others that are closed (NN has already removed the lease for those, so won't get renewed). So, the problem you mentioned will be confined to the files associated with the forgotten output streams.