Should doubles always be removed
In many cases, doubles are useful

Let's say you want to use a Subdivision Surface modifier to get a shape like the one on the top :


One of the way to do that is to split the mesh into two pieces, like shown on the bottom, but keep them on the same position like shown on the top. (please note that it's not a really good way to do that ; you should use a Edge Split modifier or Crease edges)

A similar case but with a Bevel modifier :


More generaly, you can have two pieces which are touching, or even glued together, but are not the same physical object ; and you want to keep them separated for various reasons.