Well.. the answer to that is rather tricky.
If you are designing for the non-color materials, it doesn't much matter, with three exceptions:
1) Netfabb Basic (and other software) reports the volume of your object as the sum of all the separate volumes. Two 1cm3 cubes will report as 2cm3, even if they are overlapped. That will cause you to have the wrong (too hign) estimate for the cost. Shapeways uses MeshMedic to compute the volume, and it does a decent job of getting to the right price, but it does make mistakes in rare cases.
2) When the production team uses Netfabb to measure the thickness of the walls, they will get erroneous results and possibly reject models that are valid.
In this image, the two boxes are separate shells. Netfabb measures the thickness of the lower measurement incorrectly, because it starts with the outside surface and works its way inside to the
first surface that it finds, not to the exterior wall, as it should. In this case, the measurement sould be 13.7mm, not 3.7mm Often, this causes the production team to think that some wall is too thin. It's better if you union your shells together, because then the production team will get proper measurements, thereby avoiding rejections.
3) VERY small details may get 'optimised out' of your model. There's been some problem with that recently, and having a single shell solves that issue.
If you want to try to union all the shells in a fairly complex model, upload the STL to cloud.netfabb.com - they do a good job of welding all the shells together.
===
But.. if you're designing for color, then there's a bigger problem. In the places where the walls overlap, the relationship of which color to use where becomes very tricky, and many software packages make the wrong assumptions. It's much better to have an actual vertex that defines the border between the two surfaces, and many sofware packages aren't that smart yet. It's better to union the shells together yourself, and ensure that the correct textures have been applied to the correct surfaces.