After giving it a bit of thought, I'd leave it as is for now, since it's going to be a big interface break, if we want it to be implemented the same way as it is in sklearn. 

I'd ask @lazywei and @sjwhitworth to check it out as it is for now, and if we want to make a breaking change and *always* return a vector instead of a concrete value. As I said, we can skip that discussion until we need to calculate a distance on anything but 2 vectors.