cleanup the last fix a bit

so that it's more clear now when the lock is retained and when not
without relying on tricky assumptions (or lack of symmetry)