It could be more efficient to compute several distances at once, but this is more or less the point of this function. If emphasis is on ease of use, providing an element-wise allows to use all Scipy metrics out of the box.

I'm not sure I understand your second question: pairwise_distances uses element-wise distances.