The mutexes of many thread systems (like Java) are "recursive",
meaning that:
1) if a thread T holds a mutex M, then if T tries to lock M again,
the operation succeeds without blocking, and
2) M remains locked until T has unlocked M as many times as it locked it.
(I'm not sure that's a correct description of the behavior I have in
mind, but it's a very common feature, and I'm sure you're familiar
with it.)
I can't tell from reading the SRFI whether its mutexes are recursive
or not. It's certainly possible to build recursive mutexes using
non-recursive mutexes. However, I think you'll often need to rely on
someone else's mutexes being recursive (i.e., mutexes which protect
some structure provide by a library, and which aren't under your
control), so it would be nicer if this were a property people could
assume.