To add to what unscriptable says: in general, wire attempts to manage the lifecycle of whatever components it creates. When you wire a spec, the result is a set of fully realized components that exist inside a "context" (a really generic name, but that's what we call it!). When that context is destroyed, all its components will be destroyed. Wire plugins can effectively register to manage components of different types.
For example, in the case of a DOM node, if you create one using wire (e.g. using the render factory), and then add event handlers to it (e.g. using "on" from wire/on, wire/jquery/on, or wire/dojo/on), when the enclosing context is destroyed (either explicitly, or as a result of its parent context being destroyed), the node will be removed from the DOM, and all its event connections disconnected automatically.
Component lifecycle management is a big part of wire: anything you ask wire to create, you can pretty much rely on it automatically cleaning up for you. The converse is, of course, that when you create things programmatically outside of wire, you need to clean them up yourself (as always!).