I think you have mis-understood my sugestion.
The component approach does not create those extra tables. If you have a look at 7.1 in the doc's and try it, it adds columns to each table - de-normalising the address class into each table.
You're thinking about a <composite-element> which is a collection of components which would create extra tables.
Here's the text from the doc's...
Our Hibernate mapping would look like:
<class name="eg.Person" table="person">
<id name="Key" column="pid" type="string">
<generator class="uuid.hex"/>
</id>
<property name="birthday" type="date"/>
<component name="Name" class="eg.Name"> <!-- class attribute optional -->
<property name="initial"/>
<property name="first"/>
<property name="last"/>
</component>
</class>
The person table would have the columns pid, birthday, initial, first and last.
Have a look at this link too
http://www.xylax.net/hibernate/index.html section 11.
Cheers,
Nick