as you correctly state, the DHT layer offers two methods: nodeLookup and valueLookup. While valueLookup returns a saved value, etc. (depends on the implementation of the DHT storage), nodeLookup returns the responsible node for a key.
In the file sharing application, we only want to get the responsible node for a key. In the second step we use a content distribution layer to get the saved content from the responsible node. Therefore, the nodeLookup method ist used. Of course, you can imagine an implementation where the value is used for storage, but in this application we have chosen the described way.