Connection pools generally have a queuing mechanism when requests exceed the available connections.
If, in some situations, connections are not being returned promptly then you will increase the likelihood of this queue being used.
Indeed, a general slowing of the application is one of the signs of the connection pool struggling to provide.
This doesn't have to end with the app completely locking up, as most pools have a reclaim mechanism for connections that have been inactive for a certain length of time.
So it all depends on where in your code, and how many places, you are failing to hand back connections.
Somewhere that is infrequently exercised will have little effect, somewhere more middling will slow the app down, somewhere common will probably cause it to die.
So failing to close connections properly does result in an app slowing down, and may (but not necessarily) result in an app throwing lots of connection exceptions.