In scipy, what's the point of the two different distance functions used in hierarchical clustering?
The parameter 'method' is used to measure the similarities between clusters through the hierarchical clustering process. The parameter 'metric' is used to measure the distance between two objects in the dataset.
The 'metric' is closely related to the nature of the data (e.g., you could want to use 'euclidean' distance for objects with the same number of features, or Dynamic Time Warping for time series with different durations).
The thing is that there are two ways of using the linkage function. The first parameter is y, and it can be either the data itself or a distance matrix produced previously by a given measure.
If you choose to feed 'linkage' with a distance matrix, then you won't need the 'metric' parameter, because you have already calculated all the distance between all objects.
There is one distance function I can pass to pdist use to create the distance matrix that is given to linkage. There is a second distance function that I can pass to linkage as the metric. 
Why are there two possible distance functions? 
If they are different, how are they used? For instance, does linkage use the distances in the distance matrix for its initial iterations, i.e. to see if any two original observations should be combined into a cluster, and then use the metric function for further combinations, i.e. of two clusters or of a cluster with an original observation?