There are two levels of locking with respect to migration and file stores. The first is that the WebLogic migration leasing machinery ensures that only one instance of a particular store can run at a time in a cluster. The second is that the file store itself uses "fcntl" to lock the file itself, so, in the event that two store instances, from say two different domains, attempt to open the same file, the problem is detected and second instance is locked out. You should rarely see the second check fire off in practice - it's mainly intended to guard against administrative error.
Your question about NFS is a good one. It's only recently (within the last few years) that NFS has become stable enough for WebLogic to consider it as "enterprise" safe, and, and I'm not sure if this extends to all vendors and all versions. It's definitely helpful if you can use NFS v4, as the NFS v3 standard's file locking support has problematic limitations. Also, it's absolutely required that your NFS mounts/servers be configured to properly support safe synchronous writes (otherwise data is likely to be lost in the event of a crash or hardware failure).
There's information about NFS in the store tuning documentation (http://docs.oracle.com/cd/E21764_01/web.1111/e13814/storetune.htm#CACFDGCA).