i have thought in the past that the man pages could make it clearer how ref counts interact with clunk - i.e. that a client will never send a clunk while there are outstanding transactions on the fid. this (i think) falls naturally from the way things are implemented in plan 9, but might not be obvious to those writing servers (or new clients).
i don't actually know how ref counts interact with clunk. certainly the plan 9 kernels don't send clunks of fids with transactions outstanding, but there is nothing in section 5 that says this is a requirement, and even if there were, robust servers would do well to detect that case anyway. much of the ref counting in lib9p exists for exactly this purpose, to do something sensible even when the client doesn't. russ