I also noticed a number of places that looked like they might not really
need a recursive lock. Once this patch (or some semblance of it) is
applied, I have a list I planned on looking at more closely in the near
future -- in particular the property stuff since it's performance is
another major annoyance on our large working copies where we use some
custom properties.

For this future optimizing, does someone know of a list somewhere of the
reasons why a full recursive lock is needed for operations that only
really use the immediate children of a directory? Such as the way the
auth info used to need it or other things like that? I haven't noticed
any such documentation, but I could have missed it.

I'm updating this patch (for Julian's comments) and will repost it later
tonight with a better subject.