Had I known that all subordinate families of the same name share a common definition under the project I certainly would not have used the same names, but sometimes that's beyond my control. Components come from different sources, copied out of previous projects, downloaded from the web, modified and later recombined with other components from other unrelated projects in a new project. I've always assumed that Revit was renaming them to prevent such cross contamination but that only seems to apply to components of the same level in the project browser. One component within another component that has the same name is vulnerable to error.
Yes, I can see it making a certain degree of sense in a large, organized BIM environment but we've never had the time or budget to go about that. But even if we had it seems that all it takes to screw EVERYTHING up is for one colleague to redefine a component in a place they thought wouldn't affect other components because it's inside another component. Things named generically are especially liable to be redefined in ways that are not immediately identifiable and may only be noticed after a drawing set has gone out. No, I still think this is bad design.