In some cases, using more that one type of data structure at the same time will allow you to get the best of both worlds in terms of performance. Ie, a spatial index plus a hash table as an index, over the same data, would allow efficient lookups on spatial predicates as well as attributes, over the same set of nodes.
A simple insight maybe, but not one I discovered without a lot of thought. Typically in university they teach you to use a single data structure type at a time, but really that's like teaching kids the alphabet, without the concept of combining the letters into meaningful words.