Wip client flock

What makes these locking operations different from things like writes that could also block? Is it just that multiple processes on a single client could deadlock on the blocking lock, or something else? If it's just multiple processes, can't we do this deadlock check based on what locks are *actually* held locally?