Explicitly closing circuits completely would break third-party
applications in unpredictable ways. It would generate errors that
would lead to posts to tor support describing weird application
behaviour. On the other hand explicitly closing application related
streams requires tor to be aware of the processes using it. Which
means additional logic to handle not just source port per application
stream but also source address (for the shared tor instance). If
you've seen the backlog of tickets you would understand why a major
change like this is not ideal.
If there's a problem. Either of applications not closing the
connection, or a server not closing the connection. These are problems
that should be fixed--not hidden by tor. That isn't to say what you
propose isn't a good idea, just it might be better left to custom
controllers. I think tor-devs might prefer to avoid feature creep.