Just as RPC can never behave exactly the same as a local procedure call, a network file system can never be exactly the same as a local disk. Since most programs assume they're on a Unix filesystem, we would like to make it as close a correspondance as possible. But that may not be perfect. One important Unix semantic is that files can be deleted while they're still open, and they won't be deallocated until everybody using the file is finished. To do this, the system needs to know how many people still have the file open, and over NFS we can't know that. We can know how many people have locks or leases on the file, and certainly how many have delegations, but that's not going to catch people doing IO just through LOOKUP filehandles.