Can 'terms' be shared across 'vocabularies'?
It sounds like you are using vocabularies where you could be using nodes.

So a node called the 'grand hotel' would have a rating, it may be suitable for some types of people and may also have a location. 

So you can create node type 'accommodation' which can use the vocabulary 'accommodation types', 'suitable for' and 'location'.

You could have a node type 'eating out' which can use the vocabulary 'cuisine type' but share 'suitable for' and 'location'

So each cafe or hotel could be a node of the respective type, but could appear in the search results for 'London' for example.