If there are several image widget classes, e.g. one for a stand-alone image and one for a gallery, instances of both may reference one and the same image object. Instead of a reference attribute, the gallery widget would use a referencelist attribute for pointing to any number of image objects. (There's more on attribute types in general as well as on how to use references)
Of course, reference and referencelist attributes are not limited to pointing to image objects. You can use them to create navigations (in which they point to page objects) or to associate pages or widgets with products, contact persons or other kinds of modular content.
Using the links_to and refers_to search operators, Scrivito lets you do reverse lookups to determine the CMS objects pointing to specific objects in a one-to-many or many-to-many fashion. There also is a wrapper method available, backlinks, that uses links_to for finding CMS objects linking to a particular object.