If a user clicks on a tag in the cloud, show him not only the elements supplied with this tag, but also the search results of the tag phrase in all elements. If the user is looking for something - use tags as another search area (except for headers and the contents of elements). Do not separate search and selection by tags - connect them.
This idea has simple reasons: tags are in a sense a search. These are short search phrases by which the authors of the elements would like to show their content. The phrases are suggested by the authors themselves, but is the complete list suggested in each specific case? The proposed method allows to satisfy the interests of the user who is searching, even if the author of the element was lazy and suggested a formal one or two tags.
There are consequences: you can allow, say, to drag tags from the cloud to the search bar (filtering by multiple tags, this topic has recently surfaced in Habré). You can automatically add an element with a new tag, if it was found by a tag phrase, but it does not have such a tag - this will subsequently give a more reliable and user-friendly tag cloud.
This is just an idea. If you want to put this into practice, please be sure to leave comments with indication of application areas - I want to look at it in action.