I'm not so sure about that.
I might have started late, but when I thought about it, I tried to keep the semGive together (always the order mongo then req).  Also, it makes sense to release the semaphore as soon as possible, so if something should be changed, that would be for the previous calls that release the semaphore 'too late'.