My understanding of what npm link and npm link <pkg> do is basically as described in the documentation:
Package linking is a two-step process.
First, npm link in a package folder will create a symlink in the global folder {prefix}/lib/node_modules/ that links to the package where the npm link command was executed. It will also link any bins in the package to {prefix}/bin/{name}. Note that npm link uses the global prefix (see npm prefix -g for its value).
Next, in some other location, npm link package-name will create a symbolic link from globally-installed package-name to node_modules/ of the current folder.
So I am puzzled by what it would mean to specify the version as well in the second step of package linking (for example, npm link my-package@3.1.4). Isn't the version of the linked package entirely determined by the contents of the linked directory? I don't think the documentation for npm link explains this.